Tensorflow学习笔记----模型的保存和读取(4)
一、模型的保存:tf.train.Saver类中的save
TensorFlow提供了一个一个API来保存和还原一个模型,即tf.train.Saver类。以下代码为保存TensorFlow计算图的方法:
二、模型的读取:tf.train.Saver类中的restore
注意:需要重新定义的变量大小和保存的模型变量大小需相同
通过以上方式保存和加载了TensorFlow计算图上定义的全部变量。但有时候只需要保存和加载部分变量,
比如:之前训练好了一个五层的神经网络模型,现想尝试一个六层的神经网络,可将原来的五层神经网络直接加载到新的模型中,仅仅训练最后一层神经网络。
三、保存和加载部分变量:
部分:在声明tf.train.Saver类时可以提供一个列表来指定需要保存或加载的变量。
比如:在加载模型的代码中使用 saver = tf.train.Saver( [v1] ) 命令来构建tf.trian.Saver类,那么只有变量v1会被加载进来。
重命名:tf.train.Saver类支持采用字典在保存和加载时对变量进行重命名。
saver = tf.train.Saver({"v1":newv1, "v2":newv2}) :将原来名称为v1,v2加载到变量newv1和newv2中。这时候就可以给变量newv1和newv2重新修改name了。代码:
重命名的作用之一:可以使用变量的滑动平均值:
两种方法可以提取变量的滑动平均值。
①saver = tf.train.Saver( { "v/ExponentialMovingAverage":newv } )【只要创建一个v的滑动平均类,则会创建一个v的影子变量存在模型中,该代码是直接读取v的影子变量赋予给newv。】
②ema = tf.train.ExponentialMovingAverage(0.99)
saver = tf.train.Saver(ema.variables_to_restore()) 【ExponentialMovingAverage提供了一个variables_to_restore()函数直接生成代码①中提供的字典。
四、将计算图中变量变成常量:convert_variables_to_constants函数
通过这个函数可以将计算图中的变量及其取值通过常量的方式来保存。常在迁移学习中用到。
五、模型保存和加载的原理:
https://blog.csdn.net/u011026329/article/details/79190347
https://www.cnblogs.com/hellcat/p/6925757.html
https://blog.csdn.net/weixin_43215867/article/details/85163717
- model.ckpt.meta 文件保存了TensorFlow计算图的结构,可以理解为神经网络的网络结构
- model.ckpt 文件保存了TensorFlow程序中每一个变量的取值
- checkpoint 文件保存了一个目录下所有的模型文件列表
Tensorflow学习笔记----模型的保存和读取(4)的更多相关文章
- tensorflow学习笔记——模型持久化的原理,将CKPT转为pb文件,使用pb模型预测
由题目就可以看出,本节内容分为三部分,第一部分就是如何将训练好的模型持久化,并学习模型持久化的原理,第二部分就是如何将CKPT转化为pb文件,第三部分就是如何使用pb模型进行预测. 一,模型持久化 为 ...
- TensorFlow学习笔记(8)--网络模型的保存和读取【转】
转自:http://blog.csdn.net/lwplwf/article/details/62419087 之前的笔记里实现了softmax回归分类.简单的含有一个隐层的神经网络.卷积神经网络等等 ...
- Tensorflow学习笔记2019.01.22
tensorflow学习笔记2 edit by Strangewx 2019.01.04 4.1 机器学习基础 4.1.1 一般结构: 初始化模型参数:通常随机赋值,简单模型赋值0 训练数据:一般打乱 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
- TensorFlow学习笔记——LeNet-5(训练自己的数据集)
在之前的TensorFlow学习笔记——图像识别与卷积神经网络(链接:请点击我)中了解了一下经典的卷积神经网络模型LeNet模型.那其实之前学习了别人的代码实现了LeNet网络对MNIST数据集的训练 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...
- TensorFlow学习笔记(一)
[TensorFlow API](https://www.tensorflow.org/versions/r0.12/how_tos/variable_scope/index.html) Tensor ...
- Tensorflow学习笔记2019.01.03
tensorflow学习笔记: 3.2 Tensorflow中定义数据流图 张量知识矩阵的一个超集. 超集:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S ...
- Tensorflow学习笔记No.5
tf.data卷积神经网络综合应用实例 使用tf.data建立自己的数据集,并使用CNN卷积神经网络实现对卫星图像的二分类问题. 数据下载链接:https://pan.baidu.com/s/141z ...
随机推荐
- BitmapMesh动画
一.概要 我们经常用到Canvas.drawBitmap方法,却很少用到Canvas.drawBitmapMesh方法.这个方法为我们做图片变形提供了无限可能,同时也对数学功底有较高的要求.下面先看一 ...
- [luogu3203 HNOI2010] 弹飞绵羊 (分块)
传送门 Description 某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏.游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置, ...
- <constant name="struts.devMode" value="true" />
<constant name="struts.devMode" value="true" /> 当vlaue为true,表示struts处于开发模式 ...
- HDU5130 Signal Interference
/* HDU5130 Signal Interference http://acm.hdu.edu.cn/showproblem.php?pid=5130 计算几何 圆与多边形面积交 * */ #in ...
- nodejs-mysql模块
安装mysql模块 1 npm install -g mysql node中使用Mysql模块来执行mysql命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var ht ...
- 洛谷 U3346 A1-偶回文数
U3346 A1-偶回文数 题目背景 方方方很喜欢回文数,于是zzq就出了一道关于回文数的题目. 因为偶回文数比较简单,所以方方方就把它放在了第一题... 题目描述 我们定义一个长度为偶数的回文数叫做 ...
- POJ 2019
简单的RMQ,可我怎么写都WA.不明白,找了一个和我相似的贴过了,要赶着去外婆家. #include <iostream> #include <algorithm> #incl ...
- wifi共享精灵2014.04.25.001已经更新,wifi热点中文名走起!
五一回来后,有个惊喜,wifi共享精灵有了最新动向.不晓得wifi共享精灵是啥的朋友,我来解释下,它就相当于一个无线路由器.说起来,Wifi共享精灵正式版2014.04.25.001(http://w ...
- Spring经常使用属性的注入及属性编辑器
对于对象的注入,我们使用ref方式,能够指定注入的对象.以下看下对于基本类型的注入.以及当spring无法转换基本类型进行注入时,怎样编写一个相似转换器的东西来完毕注入. 一.基本类型的注入 以下写一 ...
- 2015.04.21,外语,读书笔记-《Word Power Made Easy》 12 “如何奉承朋友” SESSION 32
TEASER PREVIEW 如何描述这些人: 很友好.容易相处的人: 不知疲倦的人: 简单.直率..aboveboard([ə'bʌv'bɔ:d] adv. 光明正大地, 率直地 adj. 光明正大 ...