如何使用tf.train.ExponentialMovingAverage来评估在TensorFlow中没有指数衰减的训练模型?

时间:2018-01-17 10:20:17

标签: python tensorflow

首先,也许我已经理解了指数衰减和tf。培养。 exponentialMovingAverage尚未完全完成。也许:)据我所知,到目前为止,每个变量都有一个副本,可以进行不同的计算,以获得更好的培训或评估结果。如果有人知道明确的解释,我会很高兴(英语或德语)。

现在我的问题是,我正在使用tf.train.ExponentialMovingAverage训练CNN(如果需要更多代码,我稍后会添加,请发表评论)。

...
variable_averages =
tf.train.ExponentialMovingAverage(get_movining_average_decay(), global_step)

variables_averages_op = 
variable_averages.apply(tf.trainable_variables())
...

然后我使用tf.train.ExponentialMovingAverage评估模型,效果很好。

...
variable_averages = 
tf.train.ExponentialMovingAverage(get_movining_average_decay())
# This may be the problem, 
# if no shadow variables have been created during the training, 
# no variables can be restored.
variables_to_restore = variable_averages.variables_to_restore()
saver = tf.train.Saver(variables_to_restore)
...

但如果我在没有tf.train.ExponentialMovingAverage的情况下训练CNN,我无法使用tf.train.ExponentialMovingAverage评估模型。很可能这条线必须改变,但我不知道是什么。

variables_to_restore = variable_averages.variables_to_restore()

如何自定义此代码,或者在TensorFlow中是不可能的,还是我仍然不能理解指数衰减,一般情况下这是不可能的?

0 个答案:

没有答案