带有 dropout 的 Tensorflow 前向传递
Tensorflow forward pass with dropout
我正在尝试使用 dropout 来获取神经网络的误差估计。这涉及 运行 我的网络在训练和测试期间的几次前向传播,激活了 dropout。 Dropout 层似乎只在训练时激活而不是测试。在 TensorFlow 中可以通过调用一些函数或修改一些参数来完成吗?
是的,最简单的方法是使用具有 training
参数的 tf.layers.dropout
,它可以是张量,您可以通过 true
或 false
在任何特定会话 运行:
mode = tf.placeholder(tf.string, name='mode')
training = tf.equal(mode, 'train')
...
layer = tf.layers.dropout(layer, rate=0.5, training=training)
...
with tf.Session() as sess:
sess.run(..., feed_dict={mode: 'train'}) # This turns on the dropout
sess.run(..., feed_dict={mode: 'test'}) # This turns off the dropout
我正在尝试使用 dropout 来获取神经网络的误差估计。这涉及 运行 我的网络在训练和测试期间的几次前向传播,激活了 dropout。 Dropout 层似乎只在训练时激活而不是测试。在 TensorFlow 中可以通过调用一些函数或修改一些参数来完成吗?
是的,最简单的方法是使用具有 training
参数的 tf.layers.dropout
,它可以是张量,您可以通过 true
或 false
在任何特定会话 运行:
mode = tf.placeholder(tf.string, name='mode')
training = tf.equal(mode, 'train')
...
layer = tf.layers.dropout(layer, rate=0.5, training=training)
...
with tf.Session() as sess:
sess.run(..., feed_dict={mode: 'train'}) # This turns on the dropout
sess.run(..., feed_dict={mode: 'test'}) # This turns off the dropout