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))),
        }
Esempio n. 2
0
    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:])