def record_trial_error(self): #throw out samples at the beginning of the trial self.trial_error = self.trial_error[20:] squared_error = [np.sum(te**2) for te in self.trial_error] if len(squared_error) != 0: self.logger.info("RMSE for trial: %g" % (np.sqrt(np.mean(squared_error)))) print "RMSE for trial: %g" % np.sqrt(np.mean(squared_error)) if not self.is_learning: self.error_history.extend(squared_error) self.trial_error = []
def make_unitary(self): fft_val = numeric.fft(self.v) fft_imag = fft_val.imag fft_real = fft_val.real fft_norms = [sqrt(fft_imag[n]**2 + fft_real[n]**2) for n in range(len(self.v))] fft_unit = fft_val / fft_norms self.v = (numeric.ifft(fft_unit)).real
def calc_stats(self): if len(self.error_history) != 0: self.latest_rmse = np.sqrt(np.mean(self.error_history)) self.logger.info("Latest RMSE: %g" % (self.latest_rmse)) self.error_history = [] self.trial_error = []
def f(input_vec): v = input_vec + noise * hrr.HRR(D).v v = v / np.sqrt(sum(v**2)) return v
def add(self,lhs,rhs,lhs_scale=1,lhs_terms=1): p=Production(lhs,rhs,lhs_scale*1.0/numeric.sqrt(lhs_terms)) self.productions.append(p)