def recall(self): # Fire EC to CA3, CA3 to CA3 if(self._ASYNC_FLAG): self.async_ca3_wrapper(self.ec_values.get_value(return_internal_type=True), self.ec_ca3_weights.get_value(return_internal_type=True), np.zeros_like(self.dg_values.get_value(), dtype=np.float32), # same as not including np.zeros_like(self.dg_ca3_weights.get_value(), dtype=np.float32), self.ca3_values.get_value(return_internal_type=True), self.ca3_ca3_weights.get_value(return_internal_type=True), self.eta_ca3.get_value(return_internal_type=True), self.zeta_ca3.get_value(return_internal_type=True)) else: self.fire_to_ca3_no_learning(self.ec_values.get_value(return_internal_type=True), self.ec_ca3_weights.get_value(return_internal_type=True), self.ca3_values.get_value(return_internal_type=True), self.ca3_ca3_weights.get_value(return_internal_type=True), self.eta_ca3.get_value(return_internal_type=True), self.zeta_ca3.get_value(return_internal_type=True)) # kWTA CA3 self.set_ca3_values( self.kWTA(self.ca3_values.get_value(return_internal_type=True), self.firing_rate_ca3)) # in-memory # fire CA3 to output self.fire_ca3_out(self.ca3_values.get_value(return_internal_type=True), self.ca3_out_weights.get_value(return_internal_type=True)) # Bipolar output: self.set_output(Tools.get_bipolar_in_out_values(self.output_values.get_value(return_internal_type=True)))
def evaluate_ann_with_bipolar_output(ann, set_size): print "Evaluating the ANN-object.." sum_corr = 0. corr_ctr = 0. neocortically_recalled_pairs = [] for [target_in, target_out] in training_patterns_associative[:5*set_size]: obtained_in, obtained_out = ann.get_IO(target_in) sum_corr += Tools.get_pattern_correlation(target_out, Tools.get_bipolar_in_out_values(obtained_out)) corr_ctr += 1 neocortically_recalled_pairs.append([obtained_in, obtained_out]) g = sum_corr / corr_ctr goodness_str = "goodness of fit, g=" + "{:6.4f}".format(g) print goodness_str