Я пытаюсь реализовать двунаправленную сеть LSTM в pybrain. У кого-нибудь есть пример кода?Как реализовать двунаправленную сеть LSTM в pybrain
0
A
ответ
3
На самом деле это полностью задокументировано внутри тестового кода. См. here на 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