2014-07-10 6 views
18

Pybrain을 사용하여 DBN을 교육하는 데 어려움이 있습니다.PyBrain - 깊은 믿음 네트워크 훈련을하는 방법?

File "/home/WORK/Canopy_64bit/User/lib/python2.7/site-packages/PyBrain-0.3.1- py2.7.egg/pybrain/unsupervised/trainers/deepbelief.py", line 62, in <genexpr> 
layercons = (self.net.connections[i][0] for i in layers) 
IndexError: list index out of range 

그래서에서 네트워크를 정의하려고 :

net = buildNetwork(*layerDims) 

나는이 문제에 직면 : 먼저 나는 그것에게 간단하게하려고 노력 How to do supervised deepbelief training in PyBrain?을하고, 제안 된 솔루션은 또 다른 오류로 주도 할퀴다!

inp = LinearLayer(3 , 'visible') 
hidden0 = SigmoidLayer(2 , 'hidden0') 
hidden1= SigmoidLayer(2 , 'hidden1') 
output = LinearLayer(2 , 'output') 
bias = BiasUnit('bias') 
net = Network() 
net.addInputModule(inp) 
net.addModule(hidden0) 
net.addModule(hidden1) 
net.addModule(output) 
net.addModule(bias) 
net.addConnection(FullConnection(inp, hidden0)) 
net.addConnection(FullConnection(hidden0, hidden1)) 
net.addConnection(FullConnection(hidden1, output)) 
net.addConnection(FullConnection(bias, hidden0)) 
net.addConnection(FullConnection(bias, hidden1)) 
net.addConnection(FullConnection(bias, output)) 
net.sortModules() 

여전히 나는 실행하면

trainer = deepbelief.DeepBeliefTrainer(net1, dataset=ds) 
trainer.trainEpochs(epochs) 

내가이 오류를 참조하십시오

관련 RBM의 숨겨진 레이어 함께 할 수있는 뭔가가
File "/home/WORK/Canopy_64bit/User/lib/python2.7/site-packages/PyBrain-0.3.1-py2.7.egg/pybrain/structure/connections/connection.py", line 37, in __init__ 
self.outSliceTo = outmod.indim 
AttributeError: 'NoneType' object has no attribute 'indim' 

.

여기에 뭔가가 있습니까?

+1

출력 모듈을 만들어야합니다. 따라서 addModule (출력)은 addOutputModule (출력)이어야합니다. – jay

+3

Pybrain은 매우 느린 라이브러리입니다. 나는 Caffe 나 C 라이브러리 같은 다른 라이브러리로 옮겼는데, 이는 25 배 더 빠르거나 더 빠르다. – pbu

+1

이 오래된 라이브러리 대신 [Blocks] (https://github.com/mila-udem/)와 같은 [Theano] (http://deeplearning.net/software/theano/) 기반 라이브러리를 살펴 보는 것이 좋습니다. 블록). –

답변

1

당신의 이름 net에 따라 네트워크를 초기화 :

net = Network() 
net.addInputModule(inp) 
net.addModule(hidden0) 
net.addModule(hidden1) 
net.addModule(output) 
net.addModule(bias) 
net.addConnection(FullConnection(inp, hidden0)) 
net.addConnection(FullConnection(hidden0, hidden1)) 
net.addConnection(FullConnection(hidden1, output)) 
net.addConnection(FullConnection(bias, hidden0)) 
net.addConnection(FullConnection(bias, hidden1)) 
net.addConnection(FullConnection(bias, output)) 
net.sortModules() 

하지만 인수 net1로 전달할 : 이것은 확실히 오류가 발생

trainer = deepbelief.DeepBeliefTrainer(net1, dataset=ds) 
trainer.trainEpochs(epochs) 

.

그래서

trainer = deepbelief.DeepBeliefTrainer(net, dataset=ds) 

가 문제를 해결해야한다.