【问题标题】:How to implement bi-directional LSTM network in pybrain如何在pybrain中实现双向LSTM网络
【发布时间】:2014-12-12 15:31:39
【问题描述】:

我正在尝试在 pybrain 中实现双向 LSTM 网络。谁有任何示例代码作为示例?

【问题讨论】:

    标签: python machine-learning neural-network pybrain lstm


    【解决方案1】:

    实际上,它已完美记录在测试代码中。 请参阅 github 上的here。

    为序列构建一个双向网络(每个样本一个 值)长度为 20:

    >>> n = BidirectionalNetwork(seqlen=20, inputsize=1, 
                                 hiddensize=5, symmetric=False)
    

    它应该有 2x1x5 + 2x1x5 + 2x5x5 = 70 个权重

    >>> n.paramdim
    70
    

    现在让我们构建一个对称网络:

    >>> n = BidirectionalNetwork(seqlen=12, inputsize=2, 
                                 hiddensize=3, symmetric=True)
    >>> n.indim
    24
    

    它应该有 1x2x3 + 1x1x3 + 1x3x3 = 18 个权重

    >>> n.paramdim
    18
    

    向前传球:

    >>> from numpy import ones
    >>> r = n.activate(ones(24))
    >>> len(r)
    12
    

    结果应该是对称的(尽管权重是随机的)

    >>> r[0]-r[-1]
    0.0
    

    检查它的渐变:

    >>> from pybrain.tests import gradientCheck
    >>> gradientCheck(n)
    Perfect gradient
    True
    

    【讨论】:

      猜你喜欢
      • 2016-01-09
      • 2020-07-14
      • 2016-05-12
      • 1970-01-01
      • 2017-12-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-16
      • 2016-02-13
      相关资源
      最近更新 更多