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

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

共 3 个回答
高赞
时间
活跃
0

0

看一眼就通过tensorflow /蟒/层/ core.py和tensorflow /蟒/操作/ nn_ops.py揭示tf.layers.dropout
为包装tf.nn.dropout
。
这两个功能的唯一区别是:
-
tf.nn.dropout
具有参数keep_prob
:“保留每个元素的概率”
tf.layers.dropout
具有参数rate
:“辍学率”
因此,keep_prob = 1 - rate
此处定义的keep_prob = 1 - rate
-
tf.layers.dropout
具有training
参数:“是在训练模式下(应用dropout)还是在推理模式下返回输出(保持输入不变)。”
0

想法是一样的,参数略有不同。在nn.dropout中 , keep_prob是保留每个元素的概率 。在layers.dropout 率= 0.1将 丢失 10%的输入单位 。
因此keep_prob = 1 - rate
。另外layers.dropout允许training
参数。
通常,只要仔细阅读有关您所关心的功能的文档,您就会发现其中的区别。
新手导航
- 社区规范
- 提出问题
- 进行投票
- 个人资料
- 优化问题
- 回答问题
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中的类似功能。