in[1]:
import numpy
import scipy.special
# определение класса нейросети
class neuralNetwork:
# инициализировать нейронную сеть(узлы:входной,скрытый,выходной и скорость обучения)
def __init__(self, inputnodes, hiddennodes, outputnodes, learningrate):
# задать количество узлов во входном, скрытом и выходном слое
self.inodes = inputnodes
self.hnodes = hiddennodes
self.onodes = outputnodes
# Матрицы весовых коэффициентов связей wih (между входным и скрытым
# слоями) и who (между скрытым и выходным слоями).
# Весовые коэффициенты связей между узлом i и узлом j следующего слоя
# обозначены как w_i_j:
# wll w21
# wl2 w22 и т.д.
#центр нормального распределения установлен здесь в 0,0
#pow(self .hnodes, -0.45), которая просто возводит количество узлов в степень -0,45.
self.wih = numpy.random.normal(0.0, pow(self.hnodes, -0.45),(self.hnodes, self.inodes))
self.who = numpy.random.normal(0.0, pow(self.onodes, -0.45),(self.onodes, self.hnodes))
# коэффициент обучения
self.lr = learningrate
# использование сигмоиды в качестве функции активации
self.activation_function = lambda x: scipy.special.expit(x)
pass
#тренировка нейросети
def train(self, inputs_list) :
pass
#опрос сети(принимает в качестве аргумента входные данные нейронной сети и возвращает ее выходные данные)
#передать сигналы от узлов входного слоя через скрытый слой к узлам выходного слоя для получения выходных данных
def query() :
# преобразовать список входных значений
# в двухмерный массив
inputs = numpy.array(inputs_list, ndmin=2).T
# рассчитать входящие сигналы для скрытого слоя
hidden_inputs = numpy.dot(self.wih, inputs)
# рассчитать исходящие сигналы для скрытого слоя
hidden_outputs = self.activation_function(hidden_inputs)
# рассчитать входящие сигналы для выходного слоя
final_inputs = numpy.dot(self.who, hidden_outputs)
# рассчитать исходящие сигналы для выходного слоя
final_outputs = self.асtivation_function(final_inputs)
return final_outputs
in[2]:
# количество входных, скрытых и выходных узлов
input_nodes = 3
hidden_nodes = 3
output_nodes = 3
# коэффициент обучения равен 0,3
learning_rate = 0.3
# создать экземпляр нейронной сети
n = neuralNetwork(input_nodes,hidden_nodes,output_nodes,learning_rate)
in[3]:
n.query([1.0,0.5,-1.5])
[1.0,0.5,-1.5]
TypeError Traceback (most recent call last)
<ipython-input-19-48f13ac7bc58> in <module>()
----> 1 n.query([1.0,0.5,-1.5])
2 [1.0,0.5,-1.5]
TypeError: query() takes 0 positional arguments but 2 were given
----> 1 n.query([1.0,0.5,-1.5])
2 [1.0,0.5,-1.5]