首页 文章

具有压差的Tensorflow正向传递

提问于
浏览
2

我试图使用dropout来获得神经网络的误差估计 . 这涉及在不仅训练而且还在测试中运行我的网络的多个前向传递,并且激活了丢失 . 辍学层似乎只在训练时激活,而不是测试 . 可以通过调用某些函数或修改某些参数在Tensorflow中完成吗?

1 回答

  • 2

    是的,最简单的方法是使用具有 training 参数的tf.layers.dropout,该参数可以是在任何特定会话运行中由 truefalse 定义的张量:

    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
    

相关问题