forked from linchaolong-work/TensorflowLearn
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path54_ema_save.py
More file actions
30 lines (23 loc) · 1.05 KB
/
54_ema_save.py
File metadata and controls
30 lines (23 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import tensorflow as tf
v = tf.Variable(0, dtype=tf.float32, name="v")
v1 = tf.Variable(0, dtype=tf.float32, name="v1")
# 在没有申明滑动平均模型是只有一个变量v,所以下面的语句只会输出"v:0"
for variables in tf.global_variables():
print(variables.name)
# 在申明滑动平均模型之后,TensorFlow会自动生成一个影子变量
# v/ExponentialMoving Average。于是下面的语句会输出
# "v:0" 和 "v/ExponentialMovingAverage:0"
ema = tf.train.ExponentialMovingAverage(0.99)
maintain_averages_op = ema.apply(tf.global_variables())
for variables in tf.global_variables():
print(variables.name)
# 保存滑动平均模型
saver = tf.train.Saver()
with tf.Session() as sess:
init_op = tf.global_variables_initializer()
sess.run(init_op)
sess.run(tf.assign(v, 10))
sess.run(maintain_averages_op)
# 保存的时候会将v:0 v/ExponentialMovingAverage:0这两个变量都存下来。
saver.save(sess, "Saved_model/model2.ckpt")
print(sess.run([v, ema.average(v)])) # 输出[10.0, 0.099999905]