【发布时间】:2017-05-22 17:25:24
【问题描述】:
我正在学习 tf.nn.dropout 命令。文档说,使用概率 keep_prob,输出按 1 / keep_prob 放大的输入元素,否则输出 0。缩放是为了使预期总和保持不变。有人可以解释一下为什么我们要使用 1/keep_prob。如果我将其值设置为 0.1。这是否意味着我只保留了 10% 的节点?
【问题讨论】:
标签: tensorflow
我正在学习 tf.nn.dropout 命令。文档说,使用概率 keep_prob,输出按 1 / keep_prob 放大的输入元素,否则输出 0。缩放是为了使预期总和保持不变。有人可以解释一下为什么我们要使用 1/keep_prob。如果我将其值设置为 0.1。这是否意味着我只保留了 10% 的节点?
【问题讨论】:
标签: tensorflow
比例因子设置为1/keep_prob,因为应该在测试或评估时禁用 dropout。请参阅 tensorflow 层上的高级 API:tf.layers.dropout。
在测试或评估期间,每个单元的激活都是未缩放的。训练期间的比例因子 1/keep_prob 确保预期激活 (keep_prob * (1/keep_prob) = 1) 与测试中的相同。 更多信息可以在这个paper找到。
假设你在层中有 10 个单元并将 keep_prob 设置为 0.1,那么 10 个中随机选择的 9 个单元的激活将设置为 0,其余的将缩放 10 倍。我认为更准确的描述是你只保留了 10% 的节点的激活。
【讨论】: