属性错误: 'int'对象没有属性'output'



我正在尝试用python编写一个模拟器来增加神经网络的峰值。网络计划由神经元和连接构建,如下所示:

连接等级:

class Connection(object):
connectionType = 0   
weight = [[0 for x in range(1)] for x in range(9)]
def __init__():
   self.threshold = 0
   self.connectionType = 0

和神经元类:

import Connection
class Neuron(object):
ID = 1
OveralPotential = 0
def __init__(self):
    global ID
    self.input = [[0 for x in range(1)] for x in range(9)]
    self.output = [[0 for x in range(1)] for x in range(9)]
    self.id = Neuron.ID
    Neuron.ID += 1
def connect(srcNeuron, dstNeuron, connectionType):
    srcNeuron.output[dstNeuron.id] = 1
    dstNeuron.input[srcNeuron.id] = 1
    Connection.Connection.connectionType = connectionType
if __name__ == "__main__":
n1 = Neuron()
n2 = Neuron()
n3 = Neuron()
print("ID of the 3rd neuron is {0}".format(n3.id))
n4 = Neuron()
n5 = Neuron()
Neuron.connect(1,3,1)
Neuron.connect(1,4,1)
Neuron.connect(1,5,1)
Neuron.connect(2,3,1)
Neuron.connect(2,4,1)
Neuron.connect(2,5,1)

但这是堆栈跟踪:

ID of the 3rd neuron is 3
Traceback (most recent call last):
File "C:Program FilesMicrosoft Visual Studio      12.0Common7IDEExtensionsMic
rosoftPython Tools for Visual Studio2.1visualstudio_py_util.py", line   106, in
exec_file
exec_code(code, file, global_variables)
File "C:Program FilesMicrosoft Visual Studio   12.0Common7IDEExtensionsMic
rosoftPython Tools for Visual Studio2.1visualstudio_py_util.py", line 82,  in
exec_code
exec(code_obj, global_variables)
File "C:UsersMatinkingDocumentsVisual Studio  2013ProjectsNeuroSimulation
NeuroSimulationNeuron.py", line 31, in <module>
Neuron.connect(1,3,1)
File "C:UsersMatinkingDocumentsVisual Studio  2013ProjectsNeuroSimulation
NeuroSimulationNeuron.py", line 16, in connect
srcNeuron.output[dstNeuron.id] = 1
AttributeError: 'int' object has no attribute 'output'

在这种情况下,我检查了可能的重复项,例如:

属性

错误:"int"对象没有属性"split"

属性

错误:"int"对象没有属性"write"

但是他们都没有给我足够的洞察力来处理上述事情。我应该如何解决?!

提前致谢

您正在将整数值传递给方法

def connect(srcNeuron, dstNeuron, connectionType):
    srcNeuron.output[dstNeuron.id] = 1
    dstNeuron.input[srcNeuron.id] = 1
    Connection.Connection.connectionType = connectionType

当您调用它时

Neuron.connect(1,3,1)
Neuron.connect(1,4,1)
Neuron.connect(1,5,1)
Neuron.connect(2,3,1)
Neuron.connect(2,4,1)
Neuron.connect(2,5,1)

我认为您实际上打算指定神经元而不是整数

Neuron.connect(n1,n3,n1)
Neuron.connect(n1,n4,n1)
Neuron.connect(n1,n5,n1)
Neuron.connect(n2,n3,n1)
Neuron.connect(n2,n4,n1)
Neuron.connect(n2,n5,n1)

connect函数需要两个类型为 Neuron 的对象,而不是神经元 id。您正在传递一个id,这是一个int python尝试访问输出字段。

相关内容

最新更新