tensorflow:tf.nn.dropout和tf.layers.dropout有什么区别
tensorflow
11
0

我对使用tf.nn.dropout还是tf.layers.dropout感到很困惑。

许多MNIST CNN示例似乎使用tf.nn.droput,其中keep_prop作为参数之一。

但是tf.layers.dropout有何不同? tf.layers.dropout中的“速率”参数与tf.nn.dropout中的相似吗?

或一般来说,tf.nn.dropout和tf.layers.dropout之间的区别适用于所有其他类似情况,例如tf.nn和tf.layers中的类似功能。

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

在训练阶段,它们是相同的(只要“掉落率”和“保持率”一致)。但是,对于评估(测试)阶段,它们是完全不同的。 tf.nn.dropout仍然会随机删除,而tf.layers.dropout不会删除任何内容(透明层)。在大多数情况下,使用tf.layers.dropout

收藏
评论

看一眼就通过tensorflow /蟒/层/ core.pytensorflow /蟒/操作/ nn_ops.py揭示tf.layers.dropout为包装tf.nn.dropout

这两个功能的唯一区别是:

  1. tf.nn.dropout具有参数keep_prob :“保留每个元素的概率”
    tf.layers.dropout具有参数rate :“辍学率”
    因此, keep_prob = 1 - rate 此处定义的keep_prob = 1 - rate
  2. tf.layers.dropout具有training参数:“是在训练模式下(应用dropout)还是在推理模式下返回输出(保持输入不变)。”
收藏
评论

想法是一样的,参数略有不同。在nn.dropout中keep_prob是保留每个元素的概率 。在layers.dropout 率= 0.1将 丢失 10%的输入单位

因此keep_prob = 1 - rate 。另外layers.dropout允许training参数。

通常,只要仔细阅读有关您所关心的功能的文档,您就会发现其中的区别。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题