2012-09-15 3 views
7

필자는 사소한 것처럼 느껴졌지 만 PyBrain 설명서, 여기 또는 다른 곳에서 유용한 것을 찾기 위해 고심했습니다. PyBrain 네트워크의 모든 노드에 대한 활성화 값

문제점이있다 :

I는 3 층 (입력 숨겨진 출력) 피드 포워드 네트워크 구축 및 PyBrain 훈련있다. 각 계층에는 세 개의 노드가 있습니다. 나는 새로운 입력으로 네트워크를 활성화하고 결과 레이어의 활성화 값을 숨겨진 레이어에 저장하려고합니다. 내가 말할 수있는 한 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 

는, 원하는 기능은 인쇄하는 것입니다 숨겨진 레이어의 활성화 값 목록

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

순수 the source code보고에 따라이 작동합니다 같은

답변

6

는 것 같습니다.

+0

완벽하게 작동했습니다. 매우 감사합니다. – dylanross

관련 문제