我在stackoverflow上搜索过这件事,也看到了类似的问题, 但他们没有一个和我有完全相同的问题。你知道吗
我正在尝试运行一个名为train()的类方法,它有3个参数,包括“self”
但我一直有个错误:
train() takes 0 positional arguments but 3 were given
我想知道是怎么回事,怎么解决?你知道吗
下面是我尝试运行的代码:
>>> n = nn.neuralNetwork(3, 3, 3, 0.3)
>>> c = n.train([1.0, 0.5, -1.5], [5,5,5])
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
c = n.train([1.0, 0.5, -1.5], [5,5,5])
TypeError: train() takes 0 positional arguments but 3 were given
下面是nn类的样子:
import numpy as np
import scipy.special
#neural network class definition
class neuralNetwork:
#initialize the neural network
def __init__(self, inputnodes, hiddennodes, outputnodes, learningrate):
#set number of nodes in each input, hidden, output layer
self.inodes = inputnodes
self.hnodes = hiddennodes
self.onodes = outputnodes
self.lr = learningrate
self.wih = np.random.normal(0.0, pow(self.inodes, -0.5), (self.hnodes, self.inodes))
self.who = np.random.normal(0.0, pow(self.hnodes, -0.5), (self.onodes, self.hnodes))
# activation function is the sigmoid function
self.activation_function = lambda x : scipy.special.expit(x)
pass
def train(self, inputs_list, targets_list):
inputs = np.array(inputs_list, ndmin = 2).T
targets = np.array(targets_list, ndmin = 2).T
hidden_inputs = np.dot(self.wih, inputs)
hidden_outputs = self.activation_function(hidden_inputs)
final_inputs = np.dot(self.who, hidden_outputs)
final_outputs = self.activation_function(final_inputs)
output_errors = targets - final_outputs
hidden_errors = np.dot(self.who.T, output_errors)
self.who += self.lr * numpy.dot((output_errors * final_outputs *
(1.0-final_outputs)), np.transpose(hidden_outputs))
self.wih += self.lr * numpy.dot((hidden_errors * hidden_outputs *
(1.0-hidden_outputs)), np.transpose(inptus))
您可以使用ipython运行它:
相关问题 更多 >
编程相关推荐