2012-09-15 9 views
7

これは簡単なことですが、私はPyBrainのドキュメント、ここや他の場所で有用なものを探すのに苦労しました。PyBrainネットワーク内のすべてのノードの有効化値

問題はこれです:

私はPyBrainに建設され、訓練された3層(入力、隠し、出力)フィードフォワードネットワークを持っています。各レイヤーには3つのノードがあります。私は、新しい入力を使ってネットワークをアクティブにし、結果として隠れた層にノードのアクティブ化値を保存します。私が知る限り、net.activate()とnet.activateOnDataset()は出力レイヤノードのアクティブ化値だけを返し、ネットワークをアクティブにする唯一の方法です。

PyBrainネットワークの隠れ層のアクティベーションをどのようにするのですか?

私は例のコードは、この場合にはその多くを助けるわからないんだけど、ここでは(カットダウントレーニングセットで)とにかく、いくつかのです:この場合

from pybrain.tools.shortcuts import buildNetwork 
from pybrain.datasets import SupervisedDataSet 
from pybrain.supervised.trainers import BackpropTrainer 

net = buildNetwork(3, 3, 3) 

dataSet = SupervisedDataSet(3, 3) 
dataSet.addSample((0, 0, 0), (0, 0, 0)) 
dataSet.addSample((1, 1, 1), (0, 0, 0)) 
dataSet.addSample((1, 0, 0), (1, 0, 0)) 
dataSet.addSample((0, 1, 0), (0, 1, 0)) 
dataSet.addSample((0, 0, 1), (0, 0, 1)) 

trainer = BackpropTrainer(net, dataSet) 
trained = False 
acceptableError = 0.001 

# train until acceptable error reached 
while trained == False : 
    error = trainer.train() 
    if error < acceptableError : 
     trained = True 

result = net.activate([0.5, 0.4, 0.7]) 
print result 

は、必要な機能は印刷することです隠れ層の活性化値のリスト。

答えて

6

これは動作するはずのように見えます:純粋the source codeを見に基づいて

net['in'].outputbuffer[net['in'].offset] 
net['hidden0'].outputbuffer[net['hidden0'].offset] 

を。

+0

これは完全に機能しました。どうもありがとう。 – dylanross

関連する問題