Tensorflow 实战google深度学习框架 09 计算图保存,与模型读取

1. 保存计算两个变量和的模型。

import tensorflow as tf
v1 = tf.Variable(tf.constant(1.0, shape=[1], name='v1'))
v2 = tf.Variable(tf.constant(2.0, shape=[1], name='v2'))

result = v1 + v2
saver = tf.train.Saver()
with tf.Session() as sess:
    tf.global_variables_initializer().run()
#     init_op = tf.global_variables_initializer()
#     sess.run(init_op)
    saver.save(sess, 'Saved_model/model_me.ckpt')
    sess.close()
2. 加载保存了两个变量和的模型。
with tf.Session() as sess:
    saver.restore(sess, 'Saved_model/model_me.ckpt')
    print(sess.run(result))

INFO:tensorflow:Restoring parameters from Saved_model/model_me.ckpt
[3.]

3. 直接加载持久化的图。
saver = tf.train.import_meta_graph('Saved_model/model_me.ckpt.meta')

with tf.Session() as sess:
    saver.restore(sess, 'Saved_model/model_me.ckpt')
    print(sess.run(tf.get_default_graph().get_tensor_by_name('add:0')))

INFO:tensorflow:Restoring parameters from Saved_model/model_me.ckpt
[3.]

4. 变量重命名 & 变量恢复
v1 = tf.Variable(tf.constant(1.0, shape=[1]), name = "other-v1")
v2 = tf.Variable(tf.constant(2.0, shape=[1]), name = "other-v2")
saver = tf.train.Saver({"v1": v1, "v2": v2})


import tensorflow as tf
v = tf.Variable(0, dtype=tf.float32, name="v")
ema = tf.train.ExponentialMovingAverage(0.99)
print( ema.variables_to_restore())

saver = tf.train.Saver({"v/ExponentialMovingAverage": v})
with tf.Session() as sess:
    saver.restore(sess, "Saved_model/model2.ckpt")
    print (sess.run(v))
5.保存滑动平均模型
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)]))
6. 加载滑动平均模型。
v = tf.Variable(0, dtype=tf.float32, name="v")

# 通过变量重命名将原来变量v的滑动平均值直接赋值给v。
saver = tf.train.Saver({"v/ExponentialMovingAverage": v})
with tf.Session() as sess:
    saver.restore(sess, "Saved_model/model2.ckpt")
    print (sess.run(v))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mtj66

看心情

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值