Pybrain错误:函数buildNetwork()未定义

时间:2014-02-12 16:31:01

标签: python python-2.7 neural-network nameerror pybrain

我正在使用Python 2.7.5和PyBrain 0.3(通过pip安装)。我无法重现PyBrain文档页面中的“quickstart”代码,因为函数buildNetwork()似乎没有定义,它会触发NameError。这是代码:

from pybrain.datasets import SupervisedDataSet
from pybrain.supervised.trainers import BackpropTrainer

ds = SupervisedDataSet(2, 1)
ds.addSample((0, 0), (0,))
ds.addSample((0, 1), (1,))
ds.addSample((1, 0), (1,))
ds.addSample((1, 1), (0,))

# here is the problem \/\/\/\/\/\/\/\/
net = buildNetwork(2, 3, 1, bias=True, hiddenclass=TanhLayer)

trainer = BackpropTrainer(net, ds)
trainer.train()

net.activate([0, 0])
net.activate([0, 1])
net.activate([1, 0])
net.activate([1, 1])

这是我在尝试运行此脚本时收到的错误消息:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-11-d45aee0605fb> in <module>()
----> 1 net = buildNetwork(2, 3, 1, bias=True, hiddenclass=TanhLayer)

NameError: name 'buildNetwork' is not defined

这很奇怪,因为以前的所有行都不会触发任何错误,buildNetwork()函数会出现问题。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

您似乎忘记导入该功能:

from pybrain.tools.shortcuts import buildNetwork

请参阅documentation

每次要使用模块的特殊成员时,都必须导入它。查看文档并搜索该成员。 For example for TanhLayer。您看到该函数位于pybrain.structure.modules中。所以你必须像

那样导入它
from pybrain.structure.modules import TanhLayer
# or
from pybrain.structure.modules import *

还有其他(有时更干净的)导入功能的方法。来自effbot的This document很好地解释了有什么区别以及你应该使用哪些。