4
我想在Tensorflow中創建一個多層雙向LSTM。目前我的單層模式是這樣的:多層bidirectional_dynamic_rnn:與MultiRNNCell不兼容?
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, ...)
爲了把它變成一個多層次的,我懷疑我能不簡單地MultiRNNCell
S環繞幾個LSTMCell
就像這樣:
multi_cell_fw = tf.contrib.rnn.MultiRNNCell([cell_fw] * num_layers, ...)
並將它們送入bidirectional_dynamic_rnn
,因爲每層中的前向和後向LSTM都需要前一層的向前和向後方向的輸出。目前我的解決方案是在一個循環中創建bidirectional_dynamic_rnn
s,輸入前面層的LSTM的連接輸出。
但是,它不是很乾淨坦率地說,我不確定它是否正確,儘管它在玩具數據集上工作。有沒有更好的方法可以使用像MultiRNNCell
這樣的東西?
我正在使用Tensorflow API r1.0。