如何在 Conv Layer 中使用 dropout 来删除 tensorflow 中的激活图?

How can I use dropout in Conv Layer to drop activation maps in tensorflow?

我正在尝试在卷积层中添加 dropout(尽管人们似乎不常这样做)。

根据cs231n,他们建议在所有激活图中删除激活图而不是单元(我认为这在某种程度上是有道理的,因为每个激活图都在不同位置提取相同的特征)。

在tensorflow中,我找不到任何API可以直接做到这一点,那我该怎么做呢? 这是我第一次在 Whosebug 中提问,非常感谢您的建议和解答。

您实际上可以通过 noise_shape 参数使用可用的 dropout 函数来执行此操作。例如。使用 layers API:

x = tf.layers.dropout(x, noise_shape=[batch_size, 1, 1, features])

这适用于二维卷积和 channels_last 格式。我们只为图像 width/height 生成一个噪声值,它将在图像维度上传播。但是,我们仍然为每个 feature/activation 地图生成不同的噪声值。