TensorFlow中的卷积层是否支持dropout?

4

我想知道在TensorFlow中是否可以简单地应用dropout到卷积上。它是如何应用的?当卷积层滑动输入时,卷积掩模的权重是否随机设置为零?


1
Dropout应用于卷积的输出,与滤波器权重没有交互。 - Olivier Moindrot
1个回答

9
您可以在任意的输入张量上应用dropout。这个输入是怎么计算的并不重要;每个输入元素将被保留(并按照下面的方式进行缩放)或设置为零。
来自https://www.tensorflow.org/api_docs/python/tf/nn/dropout
以概率keep_prob,输出输入元素通过1 / keep_prob进行缩放,否则输出0。缩放是为了保持预期总和不变。
默认情况下,每个元素都是独立保留或删除的。
例如:
conv = tf.nn.conv2d(...)
drop = tf.nn.dropout(conv, keep_prob=0.5)

尽管一些结构实现了DropoutWrapper并对其进行了不同的处理,但似乎在卷积层中有多种做dropout的方法(标准dropout和MC dropout):https://arxiv.org/abs/1506.02158 - Lenar Hoyt
1
您是在指RNN的DropoutWrapper(https://www.tensorflow.org/versions/r0.10/api_docs/python/rnn_cell.html#DropoutWrapper)吗?根据其文档,它也只是执行“输入和/或输出dropout。状态上从不使用Dropout。”目前似乎TensorFlow中没有实现其他的dropout方法。 - fwalch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接