【问题标题】:Elman Network in PybrainPybrain 中的 Elman 网络
【发布时间】:2014-09-18 21:39:34
【问题描述】:

我正在尝试使用 Pybrain 创建一个 Elman 网络(又名简单循环网络),我认为代码应该如下所示:

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。现在我得到一个错误,说网络中有一个“循环”(确实有一个)。任何帮助将非常感激。非常感谢。

干杯,

布鲁诺

【问题讨论】:

    标签: python neural-network pybrain


    【解决方案1】:

    我会看看这个部分:

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

    特别是,

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

    【讨论】:

    • 谢谢,我实际上是在使用 .addRecurrentConnection() 但后来我想看 2 或 3 个步骤,但我不知道怎么做,所以我认为一种方法是使用我的代码已发布(如果我可以用一层做,我会添加更多)
    猜你喜欢
    • 2015-12-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2023-04-07
    • 2013-12-03
    • 1970-01-01
    • 2016-09-01
    • 2014-05-18
    相关资源
    最近更新 更多