PyBrain如何做深度信念网络训练?

2024-10-01 13:31:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难用Pybrain训练DBN。 首先我试着用简单的方法:

net = buildNetwork(*layerDims)

我遇到了这个问题:How to do supervised deepbelief training in PyBrain?,建议的解决方案导致了另一个错误:

^{pr2}$

所以我试着从头开始定义一个网络!在

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)

我看到了这个错误:

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'

这与相关RBM中的隐藏层有关。在

我是不是少了点什么?在


Tags: inoutputnet错误inpbiaspybrainhidden1
1条回答
网友
1楼 · 发布于 2024-10-01 13:31:52

使用名称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

^{pr2}$

这肯定会导致错误。在

所以

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

应该能解决你的问题。在

相关问题 更多 >