模型文件(checkpoint)对模型参数的储存与恢复
1. 模型参数的保存:
import tensorflow as tf
w=tf.Variable(0.0,name='graph_w')
ww=tf.Variable(tf.random_normal(shape=(2,3),stddev=0.5),name='graph_ww')
# double=tf.multiply(2.0,w)
saver=tf.train.Saver({'weights_w':w,'weights_ww':ww}) # 此处模型文件关键字可以自己命名,如weights_w与weights_ww
# 关键字所对应的值名字为变量w与ww,而不是graph_w与graph_ww,否则会报错。{'weights_w':w,'weights_ww':ww}为模型文件
# 需要保存的变量,用字典形式书写出来,若无此字典,默认保存全部。
sess=tf.Session()
sess.run(tf.global_variables_initializer())
for i in range(4):
d=sess.run(tf.assign_add(w,2)) # 这一步对w进行计算,得到最后值为8,最终将其保存saver种
# 其中 w 必须为变量名为w,不能是graph中的graph_w,否则会报错
print(d)
print('w=',sess.run(w))
print('ww=',sess.run(ww))
saver.save(sess,'test.ckpt') 2. 模型参数的恢复:
import tensorflow as tf
restore_w=tf.Variable(0.0,name='weights_w')
restore_ww=tf.Variable(tf.random_normal(shape=(2,3),stddev=0.5),name='weights_ww') # 尽管有初始值,但未调用tf.global_variables_initializer()此函数,则不会将其初始值赋值给该变量
# restore_w与restore_ww分别对应保存变量的w与ww的恢复,若想恢复则graph必须是对应保存变量名对应字典的关键字,
# 否则将会报错。即恢复对应变量参数的变量名字可以自己重新命名,但graph中的名字必须是字典关键字。
double=tf.multiply(2.0,restore_w)
saver=tf.train.Saver()
sess=tf.Session()
saver.restore(sess,'test.ckpt')
f=sess.run(double)
print(f)
print('restore_ww=',sess.run(restore_ww))
总结:
① 变量初始化有2种方法,若不调用tf.global_variables_initializer()或tf.variables_initializer()函数就不会将变量restore_ww=tf.Variable(tf.random_normal(shape=(2,3),stddev=0.5),name='weights_ww')
初始化。相反,使用saver.restore()将其变量初始化了。同时,也说明变量初始化才不会报错。
② 模型参数以字典形式保存,其key可自己命名,其value必须为变量(非graph的name)。
③ 模型参数恢复对应变量可以自己命名,但对应变量中graph的name必须是保存模型参数对应变量的关键字(key)。
模型文件(checkpoint)对模型参数的储存与恢复的更多相关文章
- 转 Django根据现有数据库,自动生成models模型文件
Django引入外部数据库还是比较方便的,步骤如下 : 创建一个项目,修改seting文件,在setting里面设置你要连接的数据库类型和连接名称,地址之类,和创建新项目的时候一致 运行下面代码可以自 ...
- 利用tensorboard可视化checkpoint模型文件参数分布
写在前面: 上周微调一个文本检测模型seglink,将特征提取层进行冻结,只训练分类回归层,然而查看tensorboard发现里面有histogram显示模型各个参数分布,看了目前这个训练模型参数分布 ...
- TF的模型文件
TF的模型文件 标签(空格分隔): TensorFlow Saver tensorflow模型保存函数为: tf.train.Saver() 当然,除了上面最简单的保存方式,也可以指定保存的步数,多长 ...
- TensorFlow 模型文件
在这篇 TensorFlow 教程中,我们将学习如下内容: TensorFlow 模型文件是怎么样的? 如何保存一个 TensorFlow 模型? 如何恢复一个 TensorFlow 模型? 如何使用 ...
- IOS开发UI基础之Plis文件-字典转模型
什么是plist文件? 在开发中直接将数据写在代码里面 不是一种合理的做法 如果数据经常改变 就需要经常翻开对应的代码进行修改 造成代码扩展性低 因此,可以考虑将经常变的数据放在⽂文件中进⾏行存储,程 ...
- AI tensorflow模型文件
tensorflow模型可以利用tf.train.Saver类保存成文件.一个模型包含下面四个文件. meta文件 存储计算图的protobuf. data-00000-of-00001文件和inde ...
- h5模型文件转换成pb模型文件
本文主要记录Keras训练得到的.h5模型文件转换成TensorFlow的.pb文件 #*-coding:utf-8-* """ 将keras的.h5的模型文件,转换 ...
- Away3D 学习笔记(一): 加载3DS格式的模型文件
加载外部的3DS文件分为两种: 1: 模型与贴图独立于程序的,也就是从外部的文件夹中读取 private function load3DSFile():Loader3D { loader = new ...
- TensorFlow基础笔记(9) Tensorboard可视化显示以及查看pb meta模型文件的方法
参考: http://blog.csdn.net/l18930738887/article/details/55000008 http://www.jianshu.com/p/19bb60b52dad ...
随机推荐
- 一天撸完《 Learning Jupyter 5 2nd Edition》
因为工作需要了解这个应用的大概功能. 网上找不到下载的,CSDN没积分. 最后,在道客上找到了这个PDF.花了一天时间浏览了一下, 只留意了python功能,其它语言略去. widget和jupyte ...
- MarkDown中如何加入上标和下标
上标 使用<sup></sup>标签包裹的部分就是上标,例如:A<sup>T</sup> 显示效果就是 AT . 下标 使用<sub>< ...
- LOJ 3120: 洛谷 P5401: 「CTS2019 | CTSC2019」珍珠
题目传送门:LOJ #3120. 题意简述: 称一个长度为 \(n\),元素取值为 \([1,D]\) 的整数序列是合法的,当且仅当其中能够选出至少 \(m\) 对相同元素(不能重复选出元素). 问合 ...
- C#中的函数(二) 有参有返回值的函数
接上一篇 C#中的函数(-) 无参无返回值的函数 http://www.cnblogs.com/fzxiaoyi/p/8502613.html 这次研究下C#中的函数(二) 有参有返回值的函数 依然写 ...
- nginx 常用的中间件
1.--with-http_stub_status_module nginx客户端状态 # 打开default.conf文件 vim /etc/nginx/conf.d/default.conf # ...
- Spring Cloud微服务安全实战_2-1_开发环境
开发环境: JDK :1.8 IDE : idea 数据库:mysql 5.6.5 框架:springboot,mybatisplus PGA:(后边用到再安装) Promethus (普罗米修斯 ...
- notapad++正则替换
1.替换小数点后一位 XP_001663106.2XP_001662510.3XP_001655249.2XP_001655248.1NP_001165739.1 \.[0-9]或者\.\d #第一个 ...
- Kafka Rebalance机制分析
什么是 Rebalance Rebalance 本质上是一种协议,规定了一个 Consumer Group 下的所有 consumer 如何达成一致,来分配订阅 Topic 的每个分区. 例如:某 G ...
- 三天精通Vue--Vue的常用语法
Vue的介绍 官网教程:https://cn.vuejs.org/v2/guide/installation.html 掘金:https://juejin.im/ cdn(在线的网络连接资源):htt ...
- C# byte数组与16进制间的相互转换
1.byte数组转16进制字符串 /// <summary> /// 将一个byte数组转换成16进制字符串 /// </summary> /// <param na ...