keep_prob在TensorFlow MNIST教程中

时间:2016-02-22 04:24:11

标签: tensorflow

我无法理解the Deep MNIST for Experts tutorial中的以下代码。

train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})

运行keep_prob: 0.5 train_step 的目的是什么?

1 个答案:

答案 0 :(得分:21)

keep_prob值用于控制训练神经网络时使用的dropout rate。从本质上讲,它意味着层之间的每个连接(在这种情况下,在最后一个密集连接的层和读出层之间)仅在训练时使用概率0.5。这减少了过度拟合。有关辍学理论的更多信息,您可以看到原始的paper by Srivastava et al。要了解如何在TensorFlow中使用它,请参阅tf.nn.dropout()运算符上的文档。

keep_prob值通过占位符输入,以便相同的图表可用于培训(使用keep_prob = 0.5)和评估(使用keep_prob = 1.0)。处理这些情况的另一种方法是为培训和评估构建不同的图表:在当前convolutional.py模型中查看使用dropout的示例。