def _initialize_network(self, dimensions): # Generate the node map for initial GSOM layer - for all the inputs self.gsom_nodemap = { '0:0': Elements.GSOMNode( 0, 0, np.random.rand(dimensions), np.zeros((self.parameters.NUMBER_OF_TEMPORAL_CONTEXTS - 1, self.dimensions))), '0:1': Elements.GSOMNode( 0, 1, np.random.rand(dimensions), np.zeros((self.parameters.NUMBER_OF_TEMPORAL_CONTEXTS - 1, self.dimensions))), '1:0': Elements.GSOMNode( 1, 0, np.random.rand(dimensions), np.zeros((self.parameters.NUMBER_OF_TEMPORAL_CONTEXTS - 1, self.dimensions))), '1:1': Elements.GSOMNode( 1, 1, np.random.rand(dimensions), np.zeros((self.parameters.NUMBER_OF_TEMPORAL_CONTEXTS - 1, self.dimensions))), }
def _grow_individual_node(self, x, y, winner, node_map): new_node_index = Utils.Utilities.generate_index(x, y) if new_node_index not in node_map: weights = self._generate_new_node_weights(node_map, winner, x, y) node_map[new_node_index] = Elements.GSOMNode( x, y, weights[0], weights[1:])