【问题标题】:What is the difference of using the same cell or two different cells for backward and forward cells in bidirectional RNN in tensorflow?张量流中双向RNN中的后向和前向细胞使用相同的细胞或两个不同的细胞有什么区别?
【发布时间】: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


    【解决方案1】:

    不同之处在于,在第一种情况下,您使用不同的权重集来计算前向和后向传递。在第二种情况下,权重是共享的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-09
      相关资源
      最近更新 更多