如何在pybrain中实现双向LSTM网络

时间:2014-10-17 05:27:03

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

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

1 个答案:

答案 0 :(得分:3)

实际上,它完全记录在测试代码中。 请参阅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