def build_NN(self, sample): nn_sample = [] ##initial the three layer network for every sample input_layer = Layer(lambda x: x, self.input_cells) hidden_layer = Layer(tanh, self.hidden_cells) output_layer = Layer(sigmoid, self.output_cells) # build input layer input_vec = sample[:3] input_layer.set_net_vals_from_vec(input_vec) input_layer.active_cells() # build hidden layer hidden_net_vec = numpy.dot(self.w_ih, input_vec) hidden_layer.set_net_vals_from_vec(hidden_net_vec) # active hidden layer cells hidden_layer.active_cells() hid_out_vec = hidden_layer.get_active_val_as_vec() # build output layer output_vec = numpy.dot(self.w_hj, hid_out_vec) output_layer.set_net_vals_from_vec(output_vec) # active output layer cells output_layer.active_cells() type = sample[3] base = numpy.zeros(3) base[type - 1] = 1 base = numpy.asarray(base) nn_sample.append(input_layer) nn_sample.append(hidden_layer) nn_sample.append(output_layer) nn_sample.append(base) return nn_sample