如何在PyBrain中进行监督式深度置信网络训练?

10

我在PyBrain/Python中使用DeepBeliefTrainer处理数据时遇到了问题。由于我找不到除了无监督学习之外如何在PyBrain中使用深度学习的示例,所以我希望有人能提供示例,展示基本的使用概念。

我尝试使用以下初始化:

epochs = 100
layerDims = [768,100,100,1]

net = buildNetwork(*layerDims)
dataset = self.dataset
trainer = DeepBeliefTrainer(net, dataset=dataSet)
trainer.trainEpochs(epochs)

我尝试使用SupervisedDataset进行回归,但训练总是失败。有人成功地使用深度学习训练器进行监督式机器学习吗?你是怎么做到的?
我得到的错误如下:
File "/Library/Python/2.7/site-packages/PyBrain-0.3.1-py2.7.egg/pybrain/structure/networks/rbm.py", line 39, in __init__
self.con = self.net.connections[self.visible][0]
KeyError: None
1个回答

4

这是因为你的初始网络: net = buildNetwork(*layerDims)没有一个名称为“visible”的层,而在你的深度置信网络中,它是可见层。因此,为了在初始网络中找到它的映射,你可以这样做:

net.addInputModule(LinearLayer(input_dim, 'visible'))
[...]
trainer = DeepBeliefTrainer(net, dataset=dataSet)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接