python pybrain deep-learning dbn

python - PyBrain-¿Cómo hacer entrenamiento de la red Deep Creence?



deep-learning dbn (1)

Inicializa una red bajo el nombre de 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()

Pero pasas como argumento net1 :

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

Esto causa un error seguro.

Asi que

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

debe resolver su problema

Tengo algunas dificultades para entrenar un DBN usando Pybrain. Primero intenté hacerlo de manera simple:

net = buildNetwork(*layerDims)

Me enfrenté a este problema: ¿Cómo hacer un entrenamiento supervisado de creencia profunda en PyBrain? , y la solución sugerida acaba de conducir a otro error:

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

¡Así que intenté definir una red desde cero!

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()

aún cuando corro:

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

Veo este error:

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''

que tiene algo que ver con la capa oculta en la RBM relacionada.

¿Me estoy perdiendo de algo?