【发布时间】:2017-10-20 04:01:37
【问题描述】:
可以说,我正在构建一个像这样的神经网络:
x = tf.nn.conv2d(input, ...)
x = tf.nn.max_pool(x, ...)
x = tf.nn.dropout(x, keep_prob=1.)
x = tf.nn.thislayershallhavedropout(x,...)
x = tf.nn.dropout(x, keep_prob=.5)
这是一种告诉 TensorFlow 只丢弃层 thislayershallhavedropout 的有效技术吗?
基本上,我想做的是告诉 TensorFlow 仅在单个层上使用 dropout,而不是级联回更早的层。
【问题讨论】:
-
我不清楚你想要做什么的语义。
dropout是层操作,很像 ReLU、池或激活。删除(重置)一半的权重不会直接影响前一层或后续层的权重;它应用于前向数据流中的这一点。对反向传播没有影响。 -
简而言之,100% 保持的 dropout 是一个空操作。
-
@Prune dropout 丢弃激活。 dropconnect 下降权重。
-
是的,我打算做的是防止早期层的辍学。但正如你和 Thomas 解释的那样,dropout 只应用于它所应用的层。
标签: python tensorflow neural-network dropout