AttributeError:'NoneType'对象没有属性'indim'

时间:2013-05-27 05:47:48

标签: python pybrain

我正在使用'pybrain'软件包并尝试构建一个可识别图像的神经网络。分析照片的部分工作得非常好,但作为一个对pybrain不熟悉的人 - 我不习惯使用它。不知怎的,我不断收到以下错误:

AttributeError: 'NoneType' object has no attribute 'indim'

我试图解决这个问题,就像一天左右一样,仍然没有得到它。这是我的代码的一部分:

target=np.array([[0],[1]])
input=getNumberOfImages("photosAfterAverage/",1,2)
ds=SupervisedDataSet(72,1)
ds.setField('target',target)
ds.setField('input',input)
print ds.data
net=buildNewNetwork(72,76,1)
trainer = BackpropTrainer(net, ds)

假设输入是包含每个细胞72个细胞的2维。

编辑:根据要求,整个错误:

Traceback (most recent call last):
      File "C:\Users\Eytan\Desktop\Mah\Kids_Painting\pyBrainDiffrenceBetween5GradeAnd2Grade.py", line 53, in <module>
        trainer = BackpropTrainer(net, ds)
      File "C:\Python27\pybrain\supervised\trainers\backprop.py", line 35, in __init__
        self.setData(dataset)
      File "C:\Python27\pybrain\supervised\trainers\trainer.py", line 22, in setData
        assert dataset.indim == self.module.indim
    AttributeError: 'NoneType' object has no attribute 'indim'

指出以下代码有效可能会有所帮助:

net=buildNetwork(2,500,1)
ds=SupervisedDataSet(2,1)
input=array([[0,1],[1,3434],[34,65],[40,56]])
target=array([[0],[1],[0],[1]])
ds.setField('input',input)
ds.setField('target',target)
print ds.data
trainer = BackpropTrainer(net, ds)

非常感谢回答,我发现了问题 - 应该使用的正确功能是buildNetwork而不是buildNewNetwork。

1 个答案:

答案 0 :(得分:0)

似乎数据集必须以keyword argument的形式发送。尝试,

trainer = BackpropTrainer(net, dataset=ds)