python中save 函数_Tensorflow之Saver的用法详解
Saver的用法
1. Saver的背景介绍
我们经常在训练完一个模型之后希望保存训练的结果,这些结果指的是模型的参数,以便下次迭代的训练或者用作测试。Tensorflow针对这一需求提供了Saver类。
Saver类提供了向checkpoints文件保存和从checkpoints文件中恢复变量的相关方法。Checkpoints文件是一个二进制文件,它把变量名映射到对应的tensor值 。
只要提供一个计数器,当计数器触发时,Saver类可以自动的生成checkpoint文件。这让我们可以在训练过程中保存多个中间结果。例如,我们可以保存每一步训练的结果。
为了避免填满整个磁盘,Saver可以自动的管理Checkpoints文件。例如,我们可以指定保存最近的N个Checkpoints文件。
2. Saver的实例
下面以一个例子来讲述如何使用Saver类
import tensorflow as tf
import numpy as np
x = tf.placeholder(tf.float32, shape=[None, 1])
y = 4 * x + 4
w = tf.Variable(tf.random_normal([1], -1, 1))
b = tf.Variable(tf.zeros([1]))
y_predict = w * x + b
loss = tf.reduce_mean(tf.square(y - y_predict))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
isTrain = False
train_steps = 100
checkpoint_steps = 50
checkpoint_dir = ''
saver = tf.train.Saver() # defaults to saving all variables - in this case w and b
x_data = np.reshape(np.random.rand(10).astype(np.float32), (10, 1))
with tf.Session() as sess:
sess.run(tf.initialize_all_variables())
if isTrain:
for i in xrange(train_steps):
sess.run(train, feed_dict={x: x_data})
if (i + 1) % checkpoint_steps == 0:
saver.save(sess, checkpoint_dir + 'model.ckpt', global_step=i+1)
else:
ckpt = tf.train.get_checkpoint_state(checkpoint_dir)
if ckpt and ckpt.model_checkpoint_path:
saver.restore(sess, ckpt.model_checkpoint_path)
else:
pass
print(sess.run(w))
print(sess.run(b))
isTrain:用来区分训练阶段和测试阶段,True表示训练,False表示测试
train_steps:表示训练的次数,例子中使用100
checkpoint_steps:表示训练多少次保存一下checkpoints,例子中使用50
checkpoint_dir:表示checkpoints文件的保存路径,例子中使用当前路径
2.1 训练阶段
使用Saver.save()方法保存模型:
sess:表示当前会话,当前会话记录了当前的变量值
checkpoint_dir + 'model.ckpt':表示存储的文件名
global_step:表示当前是第几步
训练完成后,当前目录底下会多出5个文件。
打开名为“checkpoint”的文件,可以看到保存记录,和最新的模型存储位置。
2.1测试阶段
测试阶段使用saver.restore()方法恢复变量:
sess:表示当前会话,之前保存的结果将被加载入这个会话
ckpt.model_checkpoint_path:表示模型存储的位置,不需要提供模型的名字,它会去查看checkpoint文件,看看最新的是谁,叫做什么。
运行结果如下图所示,加载了之前训练的参数w和b的结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
python中save 函数_Tensorflow之Saver的用法详解相关推荐
- Python中第三方库Requests库的高级用法详解
Python中第三方库Requests库的高级用法详解 虽然Python的标准库中urllib2模块已经包含了平常我们使用的大多数功能,但是它的API使用起来让人实在感觉不好.它已经不适合现在的时代, ...
- mysql中find_in_set()函数的使用及in()用法详解
From: http://www.manongjc.com/article/2710.html MySQL手册中find_in_set函数的语法解释: FIND_IN_SET(str,strlist) ...
- mysql的find in set_mysql中find_in_set()函数的使用及in()用法详解
MySQL手册中find_in_set函数的语法解释: FIND_IN_SET(str,strlist) str 要查询的字符串 strlist 字段名 参数以","分隔 如 (1 ...
- Find_in_set()函数的使用及in()用法详解
这篇文章主要介绍了mysql中find_in_set()函数的使用以及in()用法详解,需要的朋可以参考下 MySQL手册中find_in_set函数的语法解释: FIND_IN_SET(str,st ...
- python数组相减_对Python 中矩阵或者数组相减的法则详解
对Python 中矩阵或者数组相减的法则详解 最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下: 定义了一个计算损失的函数: def error(yhat,labe ...
- 站长在线Python精讲:在Python中使用正则表达式的sub()方法替换字符串详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用正则表达式的sub()方法替换字符串详解>. 在Python中使用正则表达式的sub()方法替换字符串. ...
- Python函数(函数定义、函数调用)用法详解
函数 函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码. 函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码.函数还可以接 ...
- python中requests库的用途-python中requests库session对象的妙用详解
在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也 ...
- python os模块安装方法_基于python中pygame模块的Linux下安装过程(详解)
一.使用pip安装Python包 大多数较新的Python版本都自带pip,因此首先可检查系统是否已经安装了pip.在Python3中,pip有时被称为pip3. 1.在Linux和OS X系统中检查 ...
最新文章
- c#启动mysql数据库服务器_C#启动停止SQL数据库服务
- Mac-使用技巧之快捷键
- 组件间数据交互——组件插槽的作用||具名插槽用法|| 作用域插槽
- 系统安全及应用(账户安全控制,系统引导和登录,弱口令检测和登录控制,PAM认证,端口扫描,用户切换和提权)
- delphi的接口support_学习到的关于Delphi的接口
- virtualbox安装android6.0并设置分辨率为1920x1080x32
- 轨道坐标系_天文坐标系分类
- 跨境电商shopify独立站如何引流量
- 关于ccflow工作流引擎报表查询权限升级的更新
- 大学英语综合教程一 Unit 3 课文内容英译中 中英翻译
- 使用回溯算法解决排列组合问题
- 大数据的核心价值是什么
- 你的优秀与我无关 活的自由胜过成功------彭怡平(转载)
- 信息系统项目管理师---第十五、十六章 知识管理及项目变更管理历年考题
- 千古奇才---埃舍尔
- 终于,“亚麻百货”也要来了!
- 如何给单片机烧录程序?
- 华为2288H V5服务器RAID配置
- 发现一款不错的快速开发平台
- 重庆大学计算机学院 寝室,2020年重庆大学新生宿舍环境条件,大一新生男生女生宿舍内部图片【多图】...
热门文章
- 使用计算机食谱编制,1食谱编制—营养成分计算法.ppt
- 最小阻力之路,系统问题分析与解决八步法
- 牛皮凉席和牛皮枕套的差异!
- 使用python模拟光的双缝干涉
- Qtcreator 界面启动不了报错:Could not initialize GLX
- excel首行固定_EXCEL 一个工作表如何快速拆分多个工作表的方法
- 模拟电影院的买票过程演示线程安全问题
- 百趣代谢组学解读,深度解码蜜蜂肠菌调节宿主行为和神经功能
- 十一、填充和步幅、多通道输入输出、池化层作用(3.7学习笔记2)
- python的分隔符_python基础一 ------字符串的多种分隔符分隔