Pybrain的Elman网络

时间:2014-09-17 19:54:12

标签: python neural-network pybrain

我试图用Pybrain创建一个Elman网络(又名简单的Recurent网络),我认为代码应该是这样的:

n = RecurentNetwork()
n.addInputModule(LinearLayer(5, name = 'in'))
n.addModule(TanhLayer(10, name = 'hidden'))
n.addModule(LinearLayer(10, name = 'context'))
n.addOutputModule(LinearLayer(5, name = 'out'))
n.addConnection(FullConnection(n['in'], n['hidden'], name = 'in_to_hidden'))
n.addConnection(FullConnection(n['hidden'], n['out'], name = 'hidden_to_out'))
n.addConnection(IdentityConnection(n['hidden'], n['context'], name = 'hidden_to_context'))
n.addConnection(IdentityConnection(n['context'], n['hidden'], name = 'context_to_hidden')) 

我的问题是我不知道如何获取上下文节点(在时间t)以保持最后一次迭代(在时间t-1)的隐藏节点的值,以便将它们提供给这个迭代中的隐藏节点(在时间t)以及如何将hidden_​​to_context中的权重固定为1.现在我得到一个错误,说有一个"循环"在网(实际上有一个)。任何帮助将非常感激。非常感谢你。

干杯,

布鲁诺

1 个答案:

答案 0 :(得分:2)

我会看看这一节:

http://pybrain.org/docs/tutorial/netmodcon.html#using-recurrent-networks

特别是

  

RecurrentNetwork类有一个额外的方法,.addRecurrentConnection(),它可以回溯一个时间步。