Tensorflow CNN网络在使用基于三元组的培训时辍学

时间:2017-01-17 05:32:18

标签: machine-learning tensorflow neural-network deep-learning

我使用Tensorflow中的CNN使用三重数据实现了远程学习。为此,我为每一层都有一组共享的权重。我想采用辍学技术来弥补过度拟合。我想通过以下方式做到这一点:

h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)
h_fc2_drop = tf.nn.dropout(h_fc2, keep_prob)
h_fc3_drop = tf.nn.dropout(h_fc3, keep_prob)

这里, h_fci 是来自前一层的三个数据样本的输出。这就产生了潜在的问题,即丢失是概率性的,因此即使我提供相同的丢失概率,也可能为三个输出中的每一个输出不同的神经元组,而理想情况下我希望同一组神经元用于每个。那么在这种情况下实施辍学的正确方法是什么呢?

1 个答案:

答案 0 :(得分:1)

假设一切都具有相同的形状,设置相同的种子应该使它们完全相同。

在实践中虽然数据样本是小批量的,{{1}}将丢弃整个小批量中的相同单位,因此切换到堆叠您的示例可能是个好主意。