我正在尝试在 pybrain 中实现双向 LSTM 网络。任何人都有任何示例代码作为示例?
问问题
1034 次
1 回答
3
实际上它完美地记录在测试代码中。在 github 上看到这里。
为长度为 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
于 2014-10-17T07:51:00.843 回答