简体   繁体   English

AttributeError:'int'对象没有属性'output'

[英]AttributeError: 'int' object has no attribute 'output'

I am trying to write a simulator in python for spiking neural networks. 我正在尝试用python写一个模拟器来突显神经网络。 Network has been planned to be built from neurons and connections, as below: 已计划从神经元和连接建立网络,如下所示:

Connection class: 连接类别:

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

And Neuron class: 和神经元类:

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)

But here is the stacktrace: 但是这是堆栈跟踪:

ID of the 3rd neuron is 3
Traceback (most recent call last):
File "C:\Program Files\Microsoft Visual Studio      12.0\Common7\IDE\Extensions\Mic
rosoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line   106, in
exec_file
exec_code(code, file, global_variables)
File "C:\Program Files\Microsoft Visual Studio   12.0\Common7\IDE\Extensions\Mic
rosoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 82,  in
exec_code
exec(code_obj, global_variables)
File "C:\Users\Matinking\Documents\Visual Studio  2013\Projects\NeuroSimulation
\NeuroSimulation\Neuron.py", line 31, in <module>
Neuron.connect(1,3,1)
File "C:\Users\Matinking\Documents\Visual Studio  2013\Projects\NeuroSimulation
\NeuroSimulation\Neuron.py", line 16, in connect
srcNeuron.output[dstNeuron.id] = 1
AttributeError: 'int' object has no attribute 'output'

I checked the possible duplicates in this case, like: 在这种情况下,我检查了可能的重复项,例如:

AttributeError: 'int' object has no attribute 'split' AttributeError:“ int”对象没有属性“ split”

and

AttributeError: 'int' object has no attribute 'write' AttributeError:“ int”对象没有属性“ write”

But none of them gave me enough insight to handle above stuff. 但是他们都没有给我足够的洞察力来处理上述问题。 How should I resolve it?! 我应该如何解决?

Thanks in advance 提前致谢

The connect function expects two objects of type Neuron , not a neuron id. connect函数需要两个Neuron类型的对象,而不是Neuron id。 You are passing an id, that is an int and python tries to access the output field. 您正在传递一个id,即一个int而python尝试访问输出字段。

You are passing integer values to the method 您正在将整数值传递给方法

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

when you are invoking it 当您调用它时

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)

I think you actually meant to specify the neurons instead of integers 我认为您实际上是要指定神经元而不是整数

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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM