Tensorflowで複数層の双方向LSTMを作成したいとします。Multi-layered bidirectional_dynamic_rnn:MultiRNNCellと互換性がありませんか?
multi_cell_fw = tf.contrib.rnn.MultiRNNCell([cell_fw] * num_layers, ...)
:私は
ない単にそのような
MultiRNNCell
秒で数
LSTMCell
Sをラップすることができます疑いが多層にこれを有効にするためには
cell_fw = tf.contrib.rnn.LSTMCell(hidden_size)
cell_bw = tf.contrib.rnn.LSTMCell(hidden_size)
(self.out_fw, self.out_bw), _ = tf.nn.bidirectional_dynamic_rnn(cell_fw, cell_bw, input, ...)
:現在、私の単層モデルは次のようになります
を入力して、bidirectional_dynamic_rnn
に入力します。各レイヤの順方向および逆方向LSTMの両方で、前のレイヤの順方向および逆方向の両方の出力が必要なためです。現在のところ私の解決策はループの中に私のbidirectional_dynamic_rnn
を作成し、前のレイヤのLSTMの連結出力を供給することです。
しかし、それは玩具のデータセットでは機能しますが、それが正しいかどうかはわかりません。 MultiRNNCell
のようなものを使用するのと同じくらい優雅な方法がありますか?
私はTensorflow API r1.0を使用しています。