Tensorflow LSTM Dropout实施

bee*_*ght 9 time-series lstm tensorflow dropout

  • 如何明确并tensorflow申请退学调用tf.nn.rnn_cell.DropoutWrapper()的时候?

我读到的关于将退出应用于rnn的所有内容都参考了Zaremba等人的论文.al表示不在经常性连接之间应用辍学.应在LSTM层之前或之后随机丢弃神经元,而不是LSTM间层.好.

  • 我的问题是神经元是如何关闭时间的?

在每个人都引用的论文中,似乎在每个时间步长应用一个随机的"丢失掩码",而不是生成一个随机的"丢失掩码"并重新使用它,将它应用于丢弃的给定层中的所有时间步长.然后在下一批产生一个新的"辍学掩码".

此外,可能更重要的是,tensorflow是如何做到的?我已经检查了tensorflow api,并试图寻找详细的解释,但还没有找到一个.

  • 有没有办法深入研究实际的tensorflow源代码?

Rob*_*cok 4

您可以在此处检查实施情况

它在 RNNCell 的输入上使用dropout 操作,然后在输出上使用您指定的保留概率。

似乎您输入的每个序列都会获得一个新的输入掩码,然后用于输出。序列内部没有变化。