Esempio n. 1
0
    def make_norm_net(self,
                      min_input_magnitude=0.7,
                      max_input_magnitude=2.5,
                      **args):
        ens_args = dict(args)
        ens_args['dimensions'] = args.get('dimensions', vocab.sp_dim)
        ens_args['radius_scale'] = args.get('radius_scale',
                                            self.get_optimal_sp_radius())
        ens_args['n_neurons_norm'] = args.get('n_neurons_norm',
                                              self.n_neurons_ens)
        ens_args['n_neurons_norm_sub'] = args.get('n_neurons_norm_sub',
                                                  self.n_neurons_ens)
        ens_args['n_neurons_prod'] = args.get('n_neurons_prod',
                                              self.n_neurons_cconv)

        norm_net = VectorNormalize(min_input_magnitude, max_input_magnitude,
                                   **ens_args)
        with norm_net:
            disable_ens = self.make_thresh_ens_net()
            norm_net.disable = disable_ens.input
            for net in norm_net.networks:
                if net.label == "Product":
                    self.make_inhibitable(net, inhib_scale=5.0)
                    nengo.Connection(disable_ens.output, net.inhibit)
        return norm_net
Esempio n. 2
0
 def make_norm_net(self, min_input_magnitude=0.7, max_input_magnitude=2.5,
                   **args):
     ens_args = dict(args)
     ens_args['dimensions'] = args.get('dimensions', self.sp_dim)
     ens_args['n_neurons_norm'] = args.get('n_neurons_norm',
                                           self.n_neurons_ens)
     ens_args['n_neurons_norm_sub'] = args.get('n_neurons_norm_sub',
                                               self.n_neurons_ens)
     ens_args['n_neurons_prod'] = args.get('n_neurons_prod',
                                           self.n_neurons_cconv)
     norm_net = VectorNormalize(min_input_magnitude, max_input_magnitude,
                                **ens_args)
     with norm_net:
         norm_net.disable = nengo.Node(size_in=1)
         norm_prod_net = None
         for net in norm_net.networks:
             if net.label == "Product":
                 norm_prod_net = net
         for ensemble in norm_prod_net.all_ensembles:
             nengo.Connection(norm_net.disable, ensemble.neurons,
                              transform=[[-3]] * ensemble.n_neurons)
     return norm_net
Esempio n. 3
0
    def make_norm_net(self, min_input_magnitude=0.7, max_input_magnitude=2.5,
                      **args):
        ens_args = dict(args)
        ens_args['dimensions'] = args.get('dimensions', vocab.sp_dim)
        ens_args['radius_scale'] = args.get('radius_scale',
                                            self.get_optimal_sp_radius())
        ens_args['n_neurons_norm'] = args.get('n_neurons_norm',
                                              self.n_neurons_ens)
        ens_args['n_neurons_norm_sub'] = args.get('n_neurons_norm_sub',
                                                  self.n_neurons_ens)
        ens_args['n_neurons_prod'] = args.get('n_neurons_prod',
                                              self.n_neurons_cconv)

        norm_net = VectorNormalize(min_input_magnitude, max_input_magnitude,
                                   **ens_args)
        with norm_net:
            disable_ens = self.make_thresh_ens_net()
            norm_net.disable = disable_ens.input
            for net in norm_net.networks:
                if net.label == "Product":
                    self.make_inhibitable(net, inhib_scale=5.0)
                    nengo.Connection(disable_ens.output, net.inhibit)
        return norm_net