daily pastebin goal
26%
SHARE
TWEET

Neural network base

a guest Jul 12th, 2018 59 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class NeuralNetwork:
  2.    
  3.     # инициализация
  4.     def __init__(self, inputNodes, hiddenNodes, outputNodes, learningRate): # кол-во входных узлов, скрытых и выходных; коэффициент обучения
  5.        
  6.         self.iNodes = inputNodes
  7.         self.hNodes = hiddenNodes
  8.         self.oNodes = outputNodes
  9.        
  10.         self.wih = numpy.random.rand(self.hNodes, self.iNodes) - 0.5
  11.         self.who = numpy.random.rand(self.oNodes, self.hNodes) - 0.5
  12.        
  13.         self.lr = learningRate
  14.        
  15.         self.activation = lambda x: scipy.special.expit(x)
  16.        
  17.        
  18.     # тренировка
  19.     def train(self, inputs_list, targets_list):
  20.         # преобразование списка входных значений в двумерный массив
  21.         inputs = numpy.array(inputs_list, ndmin = 2).T
  22.         targets = numpy.array(targets_list, ndmin = 2).T
  23.        
  24.         # вычисления
  25.         hidden_inputs = numpy.dot(self.wih, inputs)
  26.         hidden_outputs = self.activation(hidden_inputs)
  27.         final_inputs = numpy.dot(self.who, hidden_outputs)
  28.         final_outputs = self.activation(final_inputs)
  29.        
  30.         # вычисление ошибок
  31.         output_errors = targets - final_outputs
  32.         hidden_errors = numpy.dot(self.who.T, output_errors)
  33.        
  34.         # обновление весовых коэффициентов
  35.         self.who += self.lr * numpy.dot((output_errors * final_outputs * (1.0 - final_outputs)), hidden_outputs.T)
  36.         self.wih += self.lr * numpy.dot((hidden_errors * hidden_outputs * (1.0 - hidden_outputs)), inputs.T)
  37.        
  38.        
  39.     # запросы
  40.     def query(self, inputs_list):
  41.        
  42.         # преобразование списка входных значений в двумерный массив
  43.         inputs = numpy.array(inputs_list, ndmin = 2).T
  44.        
  45.         hidden_inputs = numpy.dot(self.wih, inputs)
  46.        
  47.         hidden_outputs = self.activation(hidden_inputs)
  48.        
  49.         final_inputs = numpy.dot(self.who, hidden_outputs)
  50.         final_outputs = self.activation(final_inputs)
  51.        
  52.         return final_outputs
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top