Exemplo n.º 1
0
    def build_pooling(self, layer):
        from snntoolbox.simulation.utils import build_pooling

        delay = self.config.getfloat('cell', 'delay')
        self._conns = build_pooling(layer, delay)
        self.connections.append(self.sim.Projection(
            self.layers[-2], self.layers[-1],
            self.sim.FromListConnector(self._conns, ['weight', 'delay'])))
Exemplo n.º 2
0
    def build_pooling(self, layer):
        from snntoolbox.simulation.utils import build_pooling

        delay = self.config.getfloat('cell', 'delay')
        self._conns = build_pooling(layer, delay)

        for conn in self._conns:
            self.connections[-1].connect(i=conn[0], j=conn[1])
            self.connections[-1].w = 1 / np.prod(layer.pool_size)
Exemplo n.º 3
0
    def build_pooling(self, layer, weights=None):

        delay = self.config.getfloat('cell', 'delay')
        connections = np.array(build_pooling(layer, delay))

        self.connections[-1].connect(i=connections[:, 0].astype('int64'),
                                     j=connections[:, 1].astype('int64'))

        w = connections[:, 2] if weights is None else weights.flatten()
        self.connections[-1].w = w
Exemplo n.º 4
0
    def build_pooling(self, layer, input_weight=None):
        from snntoolbox.simulation.utils import build_pooling

        delay = self.config.getfloat('cell', 'delay')
        self._conns = build_pooling(layer, delay)

        for conn in self._conns:
            self.connections[-1].connect(i=conn[0], j=conn[1])
            if input_weight is not None:
                self.connections[-1].w = input_weight.flatten()
            else:
                self.connections[-1].w = 1 / np.prod(layer.pool_size)
    def build_pooling(self, layer):

        delay = self.config.getfloat('cell', 'delay')

        weights = build_pooling(layer, delay)
        weights = self.scale_weights(weights)
        if self.config.getboolean('tools', 'simulate'):
            self.connections.append(
                self.sim.Projection(
                    self.layers[-2],
                    self.layers[-1],
                    self.sim.FromListConnector(weights, ['weight', 'delay']),
                    receptor_type='excitatory',
                    label=self.layers[-1].label + '_excitatory'))
        else:
            # The spinnaker implementation of Projection.save() is not working
            # yet, so we do save the connections manually here.
            filepath = os.path.join(self.config.get('paths', 'path_wd'),
                                    self.layers[-1].label)
            # noinspection PyTypeChecker
            np.savetxt(filepath,
                       np.array(connections), ['%d', '%d', '%.18f', '%.3f'],
                       header="columns = ['i', 'j', 'weight', 'delay']")