0

Python 2.7.5 と PyBrain 0.3 (pip 経由でインストール) を使用しています。関数 buildNetwork() が定義されていないようで、NameError をトリガーするため、PyBrain のドキュメント ページにある「クイックスタート」コードを再現できません。コードは次のとおりです。

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() 関数で発生しています。誰か助けてくれませんか?

4

1 に答える 1

3

その関数をインポートするのを忘れたようです:

from pybrain.tools.shortcuts import buildNetwork

ドキュメントを参照してください。

モジュールの特別なメンバーを使用するたびに、それをインポートする必要があります。ドキュメントを見て、メンバーを検索します。たとえば、 TanhLayer の場合。関数が にあることがわかりますpybrain.structure.modules。したがって、次のようにインポートする必要があります

from pybrain.structure.modules import TanhLayer
# or
from pybrain.structure.modules import *

関数をインポートする他の (場合によってはよりクリーンな) 方法があります。effbot のこのドキュメントでは、違いと使用すべきものをうまく説明しています。

于 2014-02-12T16:51:08.517 に答える