tensorflow中moving average的用法
一般在保存模型参数的时候,都会保存一份moving average,是取了不同迭代次数模型的移动平均,移动平均后的模型往往在性能上会比最后一次迭代保存的模型要好一些。 tensorflow-models 项目中tutorials下cifar中相关的代码写的有点问题,在这写下我自己的做法: 1.构建训练模型时,添加如下代码 1 variable_averages = tf.train.ExponentialMovingAverage(0.999, global_step) 2 variables_averages_op = variable_averages.apply(tf.trainable_variables()) 3 ave_vars = [variable_averages.average(var) for var in tf.trainable_variables()] 4 train_op = tf.group(train_op, variables_averages_op) 第1行创建了一个指数移动平均类 variable_averages 第2行将variable_averages作用于当前模型中所有可训练的变量上,得到 variables_averages_op操作符 第3行获得所有可训练变量对应的移动平均变量列表集合,后续用于保存模型