TensorFlow saver指定变量的存取


Posted in Python onMarch 10, 2018

今天和大家分享一下用TensorFlow的saver存取训练好的模型那点事。

1. 用saver存取变量;
2. 用saver存取指定变量。

用saver存取变量。

话不多说,先上代码

# coding=utf-8
import os        
import tensorflow as tf
import numpy
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #有些指令集没有装,加这个不显示那些警告
w = tf.Variable([[1,2,3],[2,3,4],[6,7,8]],dtype=tf.float32)
b = tf.Variable([[4,5,6]],dtype=tf.float32,)
s = tf.Variable([[2, 5],[5, 6]], dtype=tf.float32)
init = tf.global_variables_initializer()
saver =tf.train.Saver()
with tf.Session() as sess:
 sess.run(init)
 save_path = saver.save(sess, "save_net.ckpt")#路径可以自己定
 print("save to path:",save_path)

这里我随便定义了几个变量然后进行存操作,运行后,变量w,b,s会被保存下来。保存会生成如下几个文件:

  • cheakpoint
  • save_net.ckpt.data-*
  • save_net.ckpt.index
  • save_net.ckpt.meta

接下来是读取的代码

import tensorflow as tf
import os
import numpy as np
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

w = tf.Variable(np.arange(9).reshape((3,3)),dtype=tf.float32)
b = tf.Variable(np.arange(3).reshape((1,3)),dtype=tf.float32)
a = tf.Variable(np.arange(4).reshape((2,2)),dtype=tf.float32)
saver =tf.train.Saver()
with tf.Session() as sess:

 saver.restore(sess,'save_net.ckpt')
 print ("weights",sess.run(w))
 print ("b",sess.run(b))
 print ("s",sess.run(a))

在写读取代码时要注意变量定义的类型、大小和变量的数量以及顺序等要与存的时候一致,不然会报错。你存的时候顺序是w,b,s,取的时候同样这个顺序。存的时候w定义了dtype没有 定义name,取的时候同样要这样,因为TensorFlow存取是按照键值对来存取的,所以必须一致。这里变量名,也就是w,s之类可以不同。

如下是我成功读取的效果

TensorFlow saver指定变量的存取

用saver存取指定变量。

在我们做训练时候,有些变量是没有必要保存的,但是如果直接用tf.train.Saver()。程序会将所有的变量保存下来,这时候我们可以指定保存,只保存我们需要的变量,其他的统统丢掉。
其实很简单,只需要在上面代码基础上稍加修改,只需把tf.train.Saver()替换成如下代码

program = []
program += [w,b]
tf.train.Saver(program)

这样,程序就只会存w和b了。同样,读取程序里面的tf.train.Saver()也要做如上修改。dtype,name之类依旧必须一致。

最后附上最终代码:

# coding=utf-8
# saver保存变量测试
import os        
import tensorflow as tf
import numpy
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' #有些指令集没有装,加这个不显示那些警告
w = tf.Variable([[1,2,3],[2,3,4],[6,7,8]],dtype=tf.float32)
b = tf.Variable([[4,5,6]],dtype=tf.float32,)
s = tf.Variable([[2, 5],[5, 6]], dtype=tf.float32)
init = tf.global_variables_initializer()
program = []
program += [w, b]
saver =tf.train.Saver(program)
with tf.Session() as sess:
 sess.run(init)
 save_path = saver.save(sess, "save_net.ckpt")#路径可以自己定
 print("save to path:",save_path)
#saver提取变量测试
import tensorflow as tf
import os
import numpy as np
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

w = tf.Variable(np.arange(9).reshape((3,3)),dtype=tf.float32)
b = tf.Variable(np.arange(3).reshape((1,3)),dtype=tf.float32)
a = tf.Variable(np.arange(4).reshape((2,2)),dtype=tf.float32)
program = []
program +=[w,b]
saver =tf.train.Saver(program)
with tf.Session() as sess:

 saver.restore(sess,'save_net.ckpt')
 print ("weights",sess.run(w))
 print ("b",sess.run(b))
 #print ("s",sess.run(a))

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
教你安装python Django(图文)
Nov 04 Python
利用Python中的输入和输出功能进行读取和写入的教程
Apr 14 Python
解决Python中由于logging模块误用导致的内存泄露
Apr 23 Python
python中assert用法实例分析
Apr 30 Python
浅谈Python处理PDF的方法
Nov 10 Python
python使用turtle绘制分形树
Jun 22 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
Jul 11 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
解决Python中pandas读取*.csv文件出现编码问题
Jul 12 Python
python实现电子书翻页小程序
Jul 23 Python
numpy np.newaxis 的实用分享
Nov 30 Python
Python利用pip安装tar.gz格式的离线资源包
Sep 14 Python
TensorFLow用Saver保存和恢复变量
Mar 10 #Python
tensorflow创建变量以及根据名称查找变量
Mar 10 #Python
Python2中文处理纪要的实现方法
Mar 10 #Python
python实现冒泡排序算法的两种方法
Mar 10 #Python
Python使用pyh生成HTML文档的方法示例
Mar 10 #Python
tensorflow获取变量维度信息
Mar 10 #Python
TensorFlow变量管理详解
Mar 10 #Python
You might like
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
javascript替换已有元素replaceChild()使用介绍
2014/04/03 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
Python re模块介绍
2014/11/30 Python
Python生成随机MAC地址
2015/03/10 Python
Python使用Scrapy爬取妹子图
2015/05/28 Python
python format 格式化输出方法
2018/07/16 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
基于python的socket实现单机五子棋到双人对战
2020/03/24 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
python的sys.path模块路径添加方式
2020/03/09 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
.NET现在共支持多少种语言
2014/02/26 面试题
旅游管理实习自我鉴定
2013/09/29 职场文书
工业学校毕业生自荐书
2014/01/03 职场文书
酒店前厅员工辞职信
2014/01/08 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
自荐信范文
2019/05/20 职场文书
慰问信(范文3篇)
2019/10/23 职场文书