4

我正在研究 Tensorflow 的语言模型教程。我的问题是:

这一行中,他们使用 Wrapper 将 dropout 应用于 RNN

lstm_cell = tf.nn.rnn_cell.BasicLSTMCell(size, forget_bias=0.0)
if is_training and config.keep_prob < 1:
  lstm_cell = tf.nn.rnn_cell.DropoutWrapper(
      lstm_cell, output_keep_prob=config.keep_prob)

为什么他们必须再次对这一行的输入应用 dropout ?

if is_training and config.keep_prob < 1:
  inputs = tf.nn.dropout(inputs, config.keep_prob)

谢谢!

编辑:好的,我在写这个问题时并没有完全理解这篇论文。基本上 Zambera 建议在任何地方都应用 dropout,除了从隐藏到隐藏。但是,一层的输出是下一层的输入,所以我们将 dropout 应用于每一层的输出,然后应用于第一层的输入。

4

0 回答 0