其他分享
首页 > 其他分享> > 如何在Tensorflow中关闭dropout以进行测试?

如何在Tensorflow中关闭dropout以进行测试?

作者:互联网

我对Tensorflow和ML一般都很新,所以我特此为一个(可能)微不足道的问题道歉.

我使用dropout技术来提高我的网络的学习率,它似乎工作得很好.然后,我想测试网络上的一些数据,看看它是否像这样工作:

   def Ask(self, image):
        return self.session.run(self.model, feed_dict = {self.inputPh: image})

显然,每次丢失仍然存在时,它会产生不同的结果.我能想到的一个解决方案是创建两个独立的模型 – 一个用于培训,另一个用于实际网络的后期使用,但是,这样的解决方案对我来说似乎不切实际.

解决这个问题的常用方法是什么?

解决方法:

最简单的方法是使用placeholder_with_default更改keep_prob参数:

prob = tf.placeholder_with_default(1.0, shape=())
layer = tf.nn.dropout(layer, prob)

以这种方式训练时你可以像这样设置参数:

sess.run(train_step, feed_dict={prob: 0.5})

当您评估时,使用默认值1.0.

标签:python,tensorflow,machine-learning,neural-network,conv-neural-network
来源: https://codeday.me/bug/20191004/1851696.html