Ich habe Schwierigkeiten beim Trainieren eines DBN mit Pybrain. Zuerst habe ich versucht, es die einfache Art und Weise zu tun:PyBrain - wie macht man tiefes Glauben Network Training?
net = buildNetwork(*layerDims)
ich dieses Problem konfrontiert: How to do supervised deepbelief training in PyBrain?, und die vorgeschlagene Lösung nur auf einen anderen Fehler führte:
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
Also habe ich versucht, ein Netzwerk aus zu definieren, kratzen!
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()
noch, als ich laufe:
trainer = deepbelief.DeepBeliefTrainer(net1, dataset=ds)
trainer.trainEpochs(epochs)
ich diesen Fehler sehen:
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'
, die etwas mit der versteckten Schicht in der zugehörigen RBM zu tun hat.
Fehle ich hier etwas?
Sie müssen ein Ausgangsmodul herstellen. Daher sollte addModule (output) addOutputModule (output) sein. – jay
Pybrain ist extrem langsame Bibliothek. Ich wechselte zu anderen Bibliotheken wie caffe oder c Bibliotheken, die 25x schneller oder mehr sind. – pbu
Anstelle dieser alten Bibliothek schlage ich vor, eine [Theano] (http://deeplearning.net/software/theano/) -basierte Bibliothek wie [Blocks] (https://github.com/mila-udem/ Blöcke). –