gpt4 book ai didi

python - tf.contrib.rnn.DropoutWrapper的state_keep_prob和output_keep_prob参数有什么区别

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:57 25 4
gpt4 key购买 nike

根据API tf.contrib.rnn.DropoutWrapper:

  • output_keep_prob:单位Tensor或0到1之间的 float ,输出保持概率;如果它是常量和 1,则不会添加输​​出丢失。
  • state_keep_prob:单位Tensor或0到1之间的 float ,输出保持概率;如果它是常量和 1,则不会添加输​​出丢失。状态丢失是在单元的输出状态上执行的。

这两个参数的描述差不多吧?

我设置output_keep_prob为默认值和state_keep_prob=0.2,400 mini后loss总是在11.3左右-batches 的训练,当我将 output_keep_prob=0.2state_keep_prob 设置为默认值时,我的模型返回的 loss 迅速下降到 左右6.0 在 20 个小批量之后!我花了 4 天时间才找到这个 bug,真的很神奇,谁能解释一下这两个参数的区别?非常感谢!

超参数:

  • lr = 5E-4
  • 批量大小 = 32
  • 状态大小 = 256
  • multirnn_depth = 2

这是 dataset .

最佳答案

  • state_keep_prob 是添加到 RNN 隐藏状态的 dropout。添加到时间步 i 状态的 dropout 将影响状态 i+1, i+2, ... 的计算。正如您所发现的,这种传播效应通常不利于学习过程。
  • output_keep_prob是在RNN输出中加入的dropout,dropout不会影响后续状态的计算。

关于python - tf.contrib.rnn.DropoutWrapper的state_keep_prob和output_keep_prob参数有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45674857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com