python - 属性错误 : 'NoneType' object has no attribute 'indim'

标签 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 个单元格。

编辑:按要求,整个错误:

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。

最佳答案

似乎数据集必须作为 keyword argument 发送.试试看,

trainer = BackpropTrainer(net, dataset=ds)

关于python - 属性错误 : 'NoneType' object has no attribute 'indim' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16767003/

相关文章:

python - 如何判断 sys.stdout 是否已在 Python 中刷新

python - 速度比较。 numpy 与 python 标准

python每日数据来自每分钟的数据

Python:Pybrain 包中的 train() 方法返回什么?

python - 如何使用 PyBrain 网络拟合函数?

python - 神经网络错误率没有进步

python - 匹配正则表达式中的连续数字,同时忽略 python3 中的破折号

python - 在 Selenium 上的 Javascript 上下文中运行一个函数

python - Pybrain简单前馈网络不输出期望值

python - 训练 pyBrain 需要多长时间?