编程神经网络时python出错(相当简单…我是python新手) 类神经网络: 定义初始化(自、输入节点、隐藏节点、输出节点、学习速率): self.inodes=输入节点 self.hnodes=隐藏节点 self.onodes=输出节点 self.lr=学习率 通过 def序列(): 通过 def query(): 通过 输入节点=3 隐藏节点=3 输出节点=3 学习率=0.3 n=神经网络(输入节点、隐藏节点、输出节点、学习率) 进口numpy self.wih=(numpy.random.rand(self.hnodes,self.inodes)-0.5) self.who=(numpy.random.rand(self.onodes,self.hnodes)-0.5) --------------------------------------------------------------------------- NameError回溯(最近一次呼叫上次) 在() ---->1 self.wih=(numpy.random.rand(self.hnodes,self.inode)-0.5) 2 self.who=(numpy.random.rand(self.onodes,self.hnodes)-0.5) NameError:未定义名称“self”
为什么不定义自己?编程神经网络时python出错(相当简单…我是python新手) 类神经网络: 定义初始化(自、输入节点、隐藏节点、输出节点、学习速率): self.inodes=输入节点 self.hnodes=隐藏节点 self.onodes=输出节点 self.lr=学习率 通过 def序列(): 通过 def query(): 通过 输入节点=3 隐藏节点=3 输出节点=3 学习率=0.3 n=神经网络(输入节点、隐藏节点、输出节点、学习率) 进口numpy self.wih=(numpy.random.rand(self.hnodes,self.inodes)-0.5) self.who=(numpy.random.rand(self.onodes,self.hnodes)-0.5) --------------------------------------------------------------------------- NameError回溯(最近一次呼叫上次) 在() ---->1 self.wih=(numpy.random.rand(self.hnodes,self.inode)-0.5) 2 self.who=(numpy.random.rand(self.onodes,self.hnodes)-0.5) NameError:未定义名称“self”,python,neural-network,Python,Neural Network,为什么不定义自己? 那么我如何修复这个错误。。。我忽略了好几次,但仍然找不到任何解决办法。尽管在教程中有这样的解释。非常感谢您的帮助。self被传递到对实例方法的调用中。您正在寻找实例本身的地址 class neuralNetwork: def __init__(self, input_nodes, hidden_nodes, output_nodes, learning_rate): self.inodes = input_nodes self.hnod
那么我如何修复这个错误。。。我忽略了好几次,但仍然找不到任何解决办法。尽管在教程中有这样的解释。非常感谢您的帮助。
self
被传递到对实例方法的调用中。您正在寻找实例本身的地址
class neuralNetwork:
def __init__(self, input_nodes, hidden_nodes, output_nodes, learning_rate):
self.inodes = input_nodes
self.hnodes = hidden_nodes
self.onodes = output_nodes
self.lr = learning_rate
pass
def train():
pass
def query():
pass
input_nodes = 3
hidden_nodes = 3
output_nodes = 3
learning_rate = 0.3
n = neuralNetwork(input_nodes,hidden_nodes,output_nodes, learning_rate)
import numpy
self.wih = (numpy.random.rand(self.hnodes, self.inodes) - 0.5)
self.who = (numpy.random.rand(self.onodes, self.hnodes) - 0.5)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-20-8474973d8450> in <module>()
----> 1 self.wih = (numpy.random.rand(self.hnodes, self.inodes) - 0.5)
2 self.who = (numpy.random.rand(self.onodes, self.hnodes) - 0.5)
NameError: name 'self' is not defined
简单地说一下self
是如何工作的,这并不神奇。以班级为例:
nnet = neuralNetwork(input_nodes,hidden_nodes,output_nodes, learning_rate)
nnet.wih = (numpy.random.rand(nnet.hnodes, nnet.inodes) - 0.5)
nnet.who = (numpy.random.rand(nnet.onodes, nnet.hnodes) - 0.5)
self
作为一个函数调用时被传递到speak
。可以将其称为this
,但self
是Python的惯例 self
被传递到对实例方法的调用中。您正在寻找实例本身的地址
class neuralNetwork:
def __init__(self, input_nodes, hidden_nodes, output_nodes, learning_rate):
self.inodes = input_nodes
self.hnodes = hidden_nodes
self.onodes = output_nodes
self.lr = learning_rate
pass
def train():
pass
def query():
pass
input_nodes = 3
hidden_nodes = 3
output_nodes = 3
learning_rate = 0.3
n = neuralNetwork(input_nodes,hidden_nodes,output_nodes, learning_rate)
import numpy
self.wih = (numpy.random.rand(self.hnodes, self.inodes) - 0.5)
self.who = (numpy.random.rand(self.onodes, self.hnodes) - 0.5)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-20-8474973d8450> in <module>()
----> 1 self.wih = (numpy.random.rand(self.hnodes, self.inodes) - 0.5)
2 self.who = (numpy.random.rand(self.onodes, self.hnodes) - 0.5)
NameError: name 'self' is not defined
简单地说一下self
是如何工作的,这并不神奇。以班级为例:
nnet = neuralNetwork(input_nodes,hidden_nodes,output_nodes, learning_rate)
nnet.wih = (numpy.random.rand(nnet.hnodes, nnet.inodes) - 0.5)
nnet.who = (numpy.random.rand(nnet.onodes, nnet.hnodes) - 0.5)
self
作为一个函数调用时被传递到speak
。可以将其称为this
,但self
是Python的惯例 因为您从未定义过self
。“self”仅在您定义的神经网络函数中定义(顺便说一下,它应该缩进到“类”定义中)。你需要用“n”来代替“self”,因为它是你的神经网络类,我想?那么我该如何定义self?就像你定义其他变量一样。但我认为对你来说,最重要的是要了解你的方法中的self
实际上是什么。现在,学习Python中OOP的基础知识。因为您从未定义过self
。“self”仅在您定义的神经网络函数中定义(顺便说一下,应该在“类”定义中缩进)。你需要用“n”来代替“self”,因为它是你的神经网络类,我想?那么我该如何定义self?就像你定义其他变量一样。但我认为对你来说,最重要的是要了解你的方法中的self
实际上是什么。注意,学习Python中OOP的基本知识。@kamazibel修复了这个问题,我没有更新我如何声明这个变量。TypeError:\uuuu init\uuuuuuuuuu()缺少4个必需的位置参数:“输入节点”、“隐藏节点”、“输出节点”和“学习速率”。@kamazibel将您的参数复制到声明中。您是否打算将wih
和who
分配给神经网络
?@kamazibel您需要初始化参数(输入节点
,隐藏节点
,输出节点
和学习速率
)。然后使用上面的@joshk代码。@kamazibel修复了这个问题,我没有更新我声明变量的方式。TypeError:\uuuu init\uuuuuuuuu()缺少4个必需的位置参数:“输入节点”、“隐藏节点”、“输出节点”和“学习速率”。@kamazibel将您的参数复制到声明中。您是否打算将wih
和who
分配给神经网络
?@kamazibel您需要初始化参数(输入节点
,隐藏节点
,输出节点
和学习速率
)。然后使用上面的@joshk代码。