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
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