首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >tensorflow: tf.nn.dropout和tf.layers.dropout的区别

tensorflow: tf.nn.dropout和tf.layers.dropout的区别
EN

Stack Overflow用户
提问于 2017-06-06 16:44:30
回答 4查看 14.3K关注 0票数 27

对于是使用tf.nn.dropout还是使用tf.layers.dropout,我感到非常困惑。

许多MNIST的例子似乎都使用tf.nn.droput,而keep_prop则是其中的一种。

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

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-06-07 05:52:20

快速浏览tensorflow/python/层/core.pyops.py可以发现,tf.layers.dropouttf.nn.dropout的包装器。

这两项职能的唯一区别是:

  1. tf.nn.dropout有参数keep_prob:“每个元素被保留的概率” tf.layers.dropout有参数rate:“辍学率” 因此,keep_prob = 1 - rate定义为这里
  2. tf.layers.dropout具有training参数:“是在训练模式(应用退出)还是在推理模式(返回未触及的输入)中返回输出。”
票数 38
EN

Stack Overflow用户

发布于 2017-06-06 22:09:22

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

所以keep_prob = 1 - rate。此外,layers.dropout还允许training参数。

通常,只要仔细阅读有关您所关心的函数的文档,您就会看到其中的不同之处。

票数 4
EN

Stack Overflow用户

发布于 2018-01-03 21:02:02

在训练阶段,他们是相同的(只要“下降率”和“保持率”是一致的)。然而,对于评估(测试)阶段,它们是完全不同的。tf.nn.dropout仍然会做随机下降,而tf.layers.dropout不会丢弃任何东西(透明层)。在大多数情况下,使用tf.layers.dropout是有意义的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44395547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档