【发布时间】:2018-08-22 01:36:16
【问题描述】:
我有一个我想不通的问题。 具有两个不同单元(一个用于前向,一个用于后向)的双向 RNN 与共享同一单元(相同单元用于后向和前向)的双向 RNN 有什么区别?
这里是两个代码的MWE:
1) 使用到不同的单元格,一个单元格在前面,另一个在后面。
fw_lstm = tf.nn.rnn_cell.BasicLSTMCell(128)
bw_lstm = tf.nn.rnn_cell.BasicLSTMCell(128)
(_, _), (fw_final_state, bw_final_state) = tf.nn.bidirectional_dynamic_rnn(cell_fw=fw_lstm,
cell_bw=bw_lstm,
inputs=self.inputs,
sequence_length=self.length)
2) 向前和向后使用相同的单元格。
lstm = tf.nn.rnn_cell.BasicLSTMCell(128)
(_, _), (fw_final_state, bw_final_state) = tf.nn.bidirectional_dynamic_rnn(cell_fw=lstm,
cell_bw=lstm,
inputs=self.inputs,
sequence_length=self.length)
我在网上看到这两个不同的代码,习惯于向不同的cell声明,但我想了解一下区别。
谢谢!
【问题讨论】:
标签: python-3.x tensorflow neural-network recurrent-neural-network