2017-03-08 7 views
4

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を使用しています。

答えて

0

だけで行います動作するはず

multi_cell_fw = tf.contrib.rnn.MultiRNNCell([cell_fw for _ in range(num_layers)], ...)

を。

関連する問題