tensorflow学习笔记1:导出和加载模型
用一个非常简单的例子学习导出和加载模型;
导出
写一个y=a*x+b的运算,然后保存graph;
import tensorflow as tf
from tensorflow.python.framework.graph_util import convert_variables_to_constants with tf.Session() as sess:
a = tf.Variable(5.0, name='a')
x = tf.Variable(6.0, name='x')
b = tf.Variable(3.0, name='b')
y = tf.add(tf.multiply(a,x),b, name="y") tf.global_variables_initializer().run() print (a.eval()) # 5.0
print (x.eval()) # 6.0
print (b.eval()) # 3.0
print (y.eval()) # 33.0 graph = convert_variables_to_constants(sess, sess.graph_def, ["y"])
#writer = tf.summary.FileWriter("logs/", graph)
tf.train.write_graph(graph, 'models/', 'test_graph.pb', as_text=False)
运行

在models目录下生成了test_graph.pb;
注:convert_variables_to_constants操作是将模型参数froze(保存)进graph中,这时的graph相当于是sess.graph_def + checkpoint,即有模型结构也有模型参数;
加载
只加载,获取各个变量的值
import tensorflow as tf
from tensorflow.python.platform import gfile with gfile.FastGFile("models/test_graph.pb", 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
output = tf.import_graph_def(graph_def, return_elements=['a:0', 'x:0', 'b:0','y:0'])
#print(output) with tf.Session() as sess:
result = sess.run(output)
print (result)
运行看以看到原本保存的结果(因为几个变量都已经带入模型,又从模型中加载了出来)

加载的时候修改变量值

5*2+3=13,结果正确
运行时修改变量值

加载时用一个占位符替掉x常量,在session运行时再给占位符填值;
5*3+3=18,也正确
修改计算结果
偷偷把结果给改了会怎么样?

呵呵,不知原因为何;以后钻进代码了再说;
参考:
https://www.sohu.com/a/233679628_468681
http://blog.163.com/wujiaxing009@126/blog/static/7198839920174125748893/
tensorflow学习笔记1:导出和加载模型的更多相关文章
- TensorFlow学习笔记:保存和读取模型
TensorFlow 更新频率实在太快,从 1.0 版本正式发布后,很多 API 接口就发生了改变.今天用 TF 训练了一个 CNN 模型,结果在保存模型的时候居然遇到各种问题.Google 搜出来的 ...
- PowerBuilder学习笔记之删除和加载PBL文件的方法
删除PBL目录的方法:直接点删除键删除 加载PBL文件的方法:点Browse按钮选择PBL文件
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
- Tensorflow学习笔记2019.01.22
tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...
- Tensorflow学习笔记2019.01.03
tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...
- TensorFlow学习笔记10-卷积网络
卷积网络 卷积神经网络(Convolutional Neural Network,CNN)专门处理具有类似网格结构的数据的神经网络.如: 时间序列数据(在时间轴上有规律地采样形成的一维网格): 图像数 ...
- Tensorflow学习笔记No.5
tf.data卷积神经网络综合应用实例 使用tf.data建立自己的数据集,并使用CNN卷积神经网络实现对卫星图像的二分类问题. 数据下载链接:https://pan.baidu.com/s/141z ...
- Tensorflow学习笔记No.4.2
使用CNN卷积神经网络(2) 使用Tensorflow搭建简单的CNN卷积神经网络对fashion_mnist数据集进行分类 不了解是那么是CNN卷积神经网络的小伙伴可以参考上一篇博客(Tensorf ...
随机推荐
- 反射RelectionDemo
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- MVC 向页面传值方式总结(2)
MVC 向页面传值方式总结 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag ViewData TempData 向普通View页面传一个Mo ...
- POJ 1324 Holedox Moving (状压BFS)
POJ 1324 Holedox Moving (状压BFS) Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 18091 Acc ...
- HttpClient参观记:.net core 2.2 对HttpClient到底做了什么?
.net core 于 10月17日发布了 ASP.NET Core 2.2.0 -preview3,在这个版本中,我看到了一个很让我惊喜的新特性:HTTP Client Performance Im ...
- io 口方向调整 stm32
zonggo//IO方向设置 CRL为0-7 CRH为 8-15 总共四个寄存器位置有效#define DS18B20_IO_IN() {GPIOB->CRH&=0X0FFFFFFF;G ...
- Codeforces 1154E - Two Teams - [线段树+链表]
题目链接:https://codeforces.com/contest/1154/problem/E 题意: $n$ 个人排成一排,第 $i$ 个人的能力值为 $a[i]$,$a[1 \sim n]$ ...
- Swift之Swift编码规范
swift 支持的 markdown 语法. 1. 编码格式 1.1 使用二元运算符(+, -,==, 或->)的前后都需要添加空格 let value = + 1.2 在逗号后面加一个空格 l ...
- SM3杂凑算法Python语言实现——第三部分
SM3杂凑算法实现--第三部分 一.SM3 密码概述 我们首先把需要用到的算法呈现出来,最后我们再考虑如何集合为一个库的方法,这一部分我们就开始编写一个新的算法:国家商用密码标准SM3密 ...
- Rabbit MQ 消息确认和持久化机制
一:确认种类 RabbitMQ的消息确认有两种.一种是消息发送确认,用来确认生产者将消息发送给交换器,交换器传递给队列的过程中消息是否成功投递.发送确认分为两步,一是确认是否到达交换器,二是确认是否到 ...
- Percona-Toolkit 之 pt-online-schema-change 总结
pt-online-schema-change - ALTER tables without locking them. pt-online-schema-change alters a table' ...