【问题标题】:Tensorflow LSTM Dropout ImplementationTensorFlow LSTM Dropout 实现
【发布时间】:2017-07-18 05:27:10
【问题描述】:
  • 在调用 tf.nn.rnn_cell.DropoutWrapper() 时,tensorflow 如何具体应用dropout

我读到的关于将 dropout 应用于 rnn 的所有内容都参考了 Zaremba et. al 的这篇论文,其中说不要在循环连接之间应用 dropout。神经元应该在 LSTM 层之前或之后随机退出,而不是 LSTM 层间。好的。

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

在每个人引用的论文中,似乎在每个时间步都应用了一个随机的“dropout mask”,而不是生成一个随机的“dropout mask”并重复使用它,将其应用于给定层中的所有时间步被丢弃出去。然后在下一批生成一个新的“dropout mask”。

此外,也许目前更重要的是,tensorflow 是如何做到的?我检查了 tensorflow api 并尝试四处寻找详细的解释,但还没有找到。

  • 有没有办法深入了解实际的 tensorflow 源代码?

【问题讨论】:

  • 所有源码都在github上

标签: tensorflow time-series lstm dropout


【解决方案1】:

你可以检查实现here.

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

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

【讨论】:

  • 谢谢。这确实给了我答案,在 tensorflow 中的 rnn 中使用 dropout 时不会经常应用它。对于任何想要此功能的人,我在 github 上打开了一个问题,问题 #7927。
猜你喜欢
  • 1970-01-01
  • 2019-06-13
  • 1970-01-01
  • 2016-11-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 2018-04-26
  • 2018-05-02
相关资源
最近更新 更多