tensorflow10 《TensorFlow实战Google深度学习框架》笔记-05-03模型持久化code
来源:互联网 发布:网络技术支持工程师 编辑:程序博客网 时间:2024/06/14 11:22
01 ckpt文件保存方法
# 《TensorFlow实战Google深度学习框架》05 minist数字识别问题# win10 Tensorflow1.0.1 python3.5.3# CUDA v8.0 cudnn-8.0-windows10-x64-v5.1# filename:ts05.09.py # ckpt文件保存方法import tensorflow as tf# 1. 保存计算两个变量和的模型v1 = tf.Variable(tf.constant(1.0, shape=[1]), name = "v1")v2 = tf.Variable(tf.constant(2.0, shape=[1]), name = "v2")result = v1 + v2init_op = tf.global_variables_initializer()saver = tf.train.Saver()with tf.Session() as sess: sess.run(init_op) # 需要在本python脚本文件下存在Saved_model目录 # 否则提示错误 ValueError: Parent directory of Saved_model/model.ckpt doesn't exist, can't save. saver.save(sess, "Saved_model/model.ckpt")# 2. 加载保存了两个变量和的模型with tf.Session() as sess: saver.restore(sess, "Saved_model/model.ckpt") print(sess.run(result)) # [3.]# 3. 直接加载持久化的图saver = tf.train.import_meta_graph("Saved_model/model.ckpt.meta")with tf.Session() as sess: saver.restore(sess, "Saved_model/model.ckpt") print(sess.run(tf.get_default_graph().get_tensor_by_name("add:0"))) # [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})
02 滑动平均类的保存
# 《TensorFlow实战Google深度学习框架》05 minist数字识别问题# win10 Tensorflow1.0.1 python3.5.3# CUDA v8.0 cudnn-8.0-windows10-x64-v5.1# filename:ts05.10.py # 滑动平均类的保存import tensorflow as tf# 1. 使用滑动平均v = tf.Variable(0, dtype=tf.float32, name="v")for variables in tf.global_variables(): print(variables.name)'''v:0'''ema = tf.train.ExponentialMovingAverage(0.99)maintain_averages_op = ema.apply(tf.global_variables())for variables in tf.global_variables(): print(variables.name)'''v:0v/ExponentialMovingAverage:0'''# 2. 保存滑动平均模型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]'''# 3. 加载滑动平均模型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.0999999'''
03 variables_to_restore函数的使用样例
# 《TensorFlow实战Google深度学习框架》05 minist数字识别问题# win10 Tensorflow1.0.1 python3.5.3# CUDA v8.0 cudnn-8.0-windows10-x64-v5.1# filename:ts05.11.py # variables_to_restore函数的使用样例import tensorflow as tfv = tf.Variable(0, dtype=tf.float32, name="v")ema = tf.train.ExponentialMovingAverage(0.99)print(ema.variables_to_restore())'''{'v/ExponentialMovingAverage': <tensorflow.python.ops.variables.Variable object at 0x000001F0CFB260F0>}'''saver = tf.train.Saver({"v/ExponentialMovingAverage": v})with tf.Session() as sess: saver.restore(sess, "Saved_model/model2.ckpt") print(sess.run(v))'''0.0999999'''
04 pb文件保存方法
# 《TensorFlow实战Google深度学习框架》05 minist数字识别问题# win10 Tensorflow1.0.1 python3.5.3# CUDA v8.0 cudnn-8.0-windows10-x64-v5.1# filename:ts05.12.py # pb文件保存方法import tensorflow as tf# 1. pb文件的保存方法import tensorflow as tffrom tensorflow.python.framework import graph_utilv1 = tf.Variable(tf.constant(1.0, shape=[1]), name = "v1")v2 = tf.Variable(tf.constant(2.0, shape=[1]), name = "v2")result = v1 + v2init_op = tf.global_variables_initializer()with tf.Session() as sess: sess.run(init_op) graph_def = tf.get_default_graph().as_graph_def() output_graph_def = graph_util.convert_variables_to_constants(sess, graph_def, ['add']) with tf.gfile.GFile("Saved_model/combined_model.pb", "wb") as f: f.write(output_graph_def.SerializeToString())# 2. 加载pb文件from tensorflow.python.platform import gfilewith tf.Session() as sess: model_filename = "Saved_model/combined_model.pb" with gfile.FastGFile(model_filename, 'rb') as f: graph_def = tf.GraphDef() graph_def.ParseFromString(f.read()) result = tf.import_graph_def(graph_def, return_elements=["add:0"]) print(sess.run(result)) # [array([ 3.], dtype=float32)]
0 0
- tensorflow10 《TensorFlow实战Google深度学习框架》笔记-05-03模型持久化code
- tensorflow26《TensorFlow实战Google深度学习框架》笔记-10-03 分布式TensorFlow code
- tensorflow14《TensorFlow实战Google深度学习框架》笔记-06-03 迁移学习 code
- tensorflow08 《TensorFlow实战Google深度学习框架》笔记-05-01minist数字识别问题code
- tensorflow09 《TensorFlow实战Google深度学习框架》笔记-05-02变量管理(命名空间)code
- tensorflow11 《TensorFlow实战Google深度学习框架》笔记-05-04mnist-nn最佳实践code
- tensorflow18《TensorFlow实战Google深度学习框架》笔记-08-03 SKlearn封装例子 code
- tensorflow22《TensorFlow实战Google深度学习框架》笔记-09-03 TensorBoard改造后的mnist_train code
- tensorflow17《TensorFlow实战Google深度学习框架》笔记-08-02 使用循环神经网络实现语言模型 code
- Tensorflow实战Google深度学习框架 笔记
- tensorflow07 《TensorFlow实战Google深度学习框架》笔记-04-05滑动平均模型
- tensorflow02 《TensorFlow实战Google深度学习框架》笔记-03
- tensorflow12《TensorFlow实战Google深度学习框架》笔记-06-01卷积层、池化层样例code
- tensorflow13《TensorFlow实战Google深度学习框架》笔记-06-02mnist LeNet5卷积神经网络 code
- tensorflow15《TensorFlow实战Google深度学习框架》笔记-07图像数据处理 code
- tensorflow16《TensorFlow实战Google深度学习框架》笔记-08-01 RNN前向传播 code
- tensorflow19《TensorFlow实战Google深度学习框架》笔记-08-04 预测正弦函数 code
- tensorflow20《TensorFlow实战Google深度学习框架》笔记-09-01 TensorBoard可视化测试 code
- 【raspberrypi】新手折腾笔记--01:安装FTP服务
- KafkaProducer剖析
- Android Studio中开启Lambda表达式
- Java Swing设置图标Icon
- 完美解决access双精度和单精度字段内容变成科学记数法
- tensorflow10 《TensorFlow实战Google深度学习框架》笔记-05-03模型持久化code
- 9. Palindrome Number
- 毕设ing|【翻译】部分UI掘进之路
- 机器学习sklearn之菜鸟入门三
- 关于命令行上执行java命令的错误分析
- xml之SAX解析
- 正则表达式全部符号解释
- 同一个世界 三生梦醒 遗迹 攻略
- 二分查找的思想和实现