tensorflow - 如何在 Conv Layer 中使用 dropout 在 tensorflow 中删除激活图?
问题描述
我正在尝试在卷积层中添加 dropout(尽管人们似乎不经常这样做)。
根据 cs231n,他们建议在所有激活图中删除激活图而不是单元(我认为这在某种程度上是有道理的,因为每个激活图都在不同位置提取相同的特征)。
在tensorflow中,我找不到任何API可以直接做到这一点,那我该怎么做呢?这是我第一次在 StackOverflow 中提出问题,我将感谢您的建议和答案。
解决方案
您实际上可以通过noise_shape
参数使用可用的 dropout 函数来执行此操作。例如使用layers
API:
x = tf.layers.dropout(x, noise_shape=[batch_size, 1, 1, features])
这将用于 2D 卷积和channels_last
格式。我们只为图像宽度/高度生成单个噪声值,该噪声值将在图像尺寸上进行广播。但是,我们仍然为每个特征/激活图生成不同的噪声值。
推荐阅读
- javascript - Thymeleaf 属性和模态
- javascript - 如何在窗口函数上传递参数
- go - 从指针同时读取是否安全?
- javascript - 如何针对预定义的对象属性名称使用 JavaScript 提示框输入值?
- python - 我可以显示 MultiOutputClassifier 的特征重要性吗?
- android - 如何在 Android 上从 Post 请求中获取对 Rest API 的响应
- excel - VBA Scripting.Dictionary 过滤问题
- python - 我需要一个 python REGEX 来通过分隔符(开始,结束)分割一个文件,它可以有多次出现
- java - SSLHandshakeException - 使用自签名证书从 Web 应用程序调用 Web 服务
- javascript - 在动态添加的 DOM 元素上使用点击事件