A
A
arlanchik52018-01-27 23:05:11
Python
arlanchik5, 2018-01-27 23:05:11

Neural network in python (jupyter), what's the problem?

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]

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
almaredan, 2018-03-05
@almaredan

The query function is declared without arguments, but it is expected, as I understand it, query(self, inputs_list)

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question