一般来说,我对Tensorflow和ML还是比较陌生,因此我对一个(可能)琐碎的问题表示歉意。
我使用辍学技术来提高网络的学习速度,并且看起来工作得很好。然后,我想在一些数据上测试网络,看它是否像这样工作:
def Ask(self, image): return self.session.run(self.model, feed_dict = {self.inputPh: image})
显然,由于辍学仍然存在,每次产生不同的结果。我能想到的一种解决方案是创建两个单独的模型- 一个用于训练,另一个用于实际以后使用网络,但是,这种解决方案对我来说似乎不切实际。
解决此问题的常用方法是什么?
最简单的方法是使用来更改keep_prob参数placeholder_with_default:
keep_prob
placeholder_with_default
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。