Tensorflow笔记4:Saver

2023-05-16

  Saver类位于tf.train中,属于训练过程中要用到的方法,主要作用就是保存和加载save & restore ckpt。
  最简单的保存应用举例:

saver.save(sess, 'my-model', global_step=0) ==> filename: 'my-model-0'
...
saver.save(sess, 'my-model', global_step=1000) ==> filename: 'my-model-1000'

  正常训练的过程应用:

# Create a saver.
saver = tf.train.Saver(...variables...)
# Launch the graph and train, saving the model every 1,000 steps.
sess = tf.Session()
for step in xrange(1000000):
    sess.run(..training_op..)
    if step % 1000 == 0:
        # Append the step number to the checkpoint name:
        saver.save(sess, 'my-model', global_step=step)

一、Saver构造函数__init__

  众多参数可传入,但用到的不多:

__init__(
    var_list=None,# 若为dict of variables,key将会做为save和restore的名字;若为list of variables,key将会采用op的名称。
    reshape=False,# 若True,允许在restore过程中将不同shape的变量进行reshape(必须同大小同种类)
    sharded=False,# 每一个设备都共享此ckpt
    max_to_keep=5,# 空间受限,仅存储最近5个模型
    keep_checkpoint_every_n_hours=10000.0,# 每隔n小时进行一次保存
    name=None,
    restore_sequentially=False,
    saver_def=None,
    builder=None,
    defer_build=False,
    allow_empty=False,
    write_version=tf.train.SaverDef.V2,
    pad_step_number=False,
    save_relative_paths=False,
    filename=None
)

二、Properties

  Saver的Properties仅有一个:last_checkpoints,返回目前还未删除的ckpt的文件列表,按照从旧到新的顺序。

三、Methods

1.save()

  保存变量,此函数需要一个session,其中含有launched graph,所有变量应已经被初始化。

save(
    sess,# 用于保存变量的会话,其中的variables应都已经init
    save_path,# 字符串,前缀:“my-model”,最终成为my-model<-global_step>.data-00000-of-00001
    global_step=None,# 训练轮数=全局步数:1000  ==>  my-model-1000
    latest_filename=None,
    meta_graph_suffix='meta',# MetaGraphDef文件的后缀,默认meta,占用几个M的文件
    write_meta_graph=True,# Bool,指定是否需要保存一个meta图,默认保存
    write_state=True,
    strip_default_attrs=False,
    save_debug_info=False
)

  保存后目录下会有几个文件:

  • checkpoint :训练过程中自动生成的文本文件,里面记录了保存的最新的checkpoint文件以及其它checkpoint文件列表。在inference时,可以通过修改这个文件,指定使用哪个model。
  • MyModel.meta:包含全部graph信息。这是一个序列化的MetaGraphDef protocol buffer,包含数据流、变量的annotations、input pipelines,以及其他相关信息。
  • MyModel.data-00000-of-00001:包含所有变量的值(weights, biases, placeholders, gradients, hyper-parameters etc),也就是模型训练好参数和其他值
  • MyModel.index:?
      其中meta信息含有graph信息,因此在重新导入图是不需要手工从头开始构建图,而是直接导入meta信息。具体做法如下:
saver = tf.compat.v1.train.Saver(...variables...) # Create a saver.
tf.compat.v1.add_to_collection('train_op', train_op) # Remember the training_op we want to run by adding it to a collection.
sess = tf.Session()	# 创建一个Session
for step in xrange(1000000):
    sess.run(train_op)
    if step % 1000 == 0:
        saver.save(sess, 'my-model', global_step=step) # 同时保存了meta文件
# ########################################################################
with tf.Session() as sess:
	# 加载图信息,在默认session中创建图。返回的是一个Saver
	new_saver = tf.train.import_meta_graph('my-save-dir/my-model-10000.meta') 
	new_saver.restore(sess, 'my-save-dir/my-model-10000') # 加载数据信息
	train_op = tf.get_collection('train_op')[0] # 会返回一个列表,因此需要取出0元素
	for step in xrange(1000000):
		sess.run(train_op)

更多使用方法:[🔗]

2.restore()

  直接运行装载变量的op,需要一个包含launched graph的session。graph中的变量可以不被初始化,装载操作可以算做初始化。

restore(
    sess,		# 被装载的会话
    save_path	# 保存的路径:.ckpt结尾
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tensorflow笔记4:Saver 的相关文章

随机推荐

  • 转载篇:优秀博文汇总

    1 Pytorch中堆网络语法 xff1a nn moduleList 和Sequential由来 用法和实例 写网络模型 https blog csdn net e01528 article details 84397174 2 CNN中
  • 批量归一化:Batch Normalization层 原理+Pytorch实现

    一 BN层概念明晰 BN层存在的意义 xff1a 让较深的神经网络的训练变得更加容易 BN层的工作内容 xff1a 利用小批量数据样本的均值和标准差 xff0c 不断调整神经网络中间输出 xff0c 使整个神经网络在各层的中间输出的数值更加
  • 模型量化——基础知识 & LSQ论文阅读

    感谢陈老师给的机会 xff0c 有幸能够参加2020年的DAC比赛 我在其中负责目标检测器的调试和量化 自己第一次接触量化这个任务 xff0c 很多东西都是一点一点学 一 量化基础 对于一个全精度的值 v v v xff0c 若量化步长为
  • python3安装tensorflow遇到的问题

    1 使用命令 xff1a sudo pip3 install upgrade https storage googleapis com tensorflow linux cpu tensorflow 1 1 0rc2 cp35 cp35m
  • argparse模块使用说明

    深度学习的工程中 xff0c py文件中的main函数一开始总会有大量的参数传入 xff0c 而通常使用的方法就是使用argparse通过命令行传入 xff0c 这篇博文旨在记录argparse的常用方法 一 语句简介 1 载入argpar
  • Tensorboard在网络训练中的Logger使用方法

    做为神经网络训练中最常用的可视化工具 xff0c Tensorboard经常在Pytorch和Tensorflow框架中做为可视化工具 但是其使用的确是有点繁琐 xff0c 所以开设了一个这样的专题 xff0c 用于总结见过的工程里面的数据
  • Pytorch训练流程

    调试了很久YOLO的标准Pytorch实现 xff0c 将Train代码进行了重新整理 xff0c 抽出了标准的Pytorch训练框架 现在整理下来 xff0c 以备后用 整理后的代码分为三个大部分 xff0c 每个大部分分为三个小部分 x
  • 初识Vulkan渲染管线

    目前参考 Vulkan规范 和 Vulkan开发实战详解 对渲染管线有了一个初步的认识 现结合中英文的渲染管线图进行笔记整理 中英文的渲染管线图分别如下所示 xff1a 绘制命令送入设备队列执行后 xff0c Vulkan将原始的物体顶点坐
  • Vulkan着色器的GLSL创建、编译、加载、创建流程

    Vulkan没有指定官方的着色器编程语言 xff0c 而是采用SPIR V二进制中间格式进行表示 开发人员一般需要基于某种着色器编程语言开发着色器 xff0c 之后再编译为SPIR V格式 可以选用GLSL着色器编程语言进行开发 大型游戏场
  • 神经网络运算量&参数量估计——FLOPS和FLOPs辨析

    一 概念明晰 首先要明确 运算量 和 参数量 两个概念 xff1a 参数量 xff1a 这个比较好理解 xff0c 例如卷积层中的卷积核c i k k n o xff0c 其参数量就是相乘的结果 而且 xff0c 无论输入图像的尺寸怎么变
  • 机器学习基础——彻底搞懂Precision\Recall\F1\P-R\ROC

    一直以为自己理解这些概念 xff0c 但是其实只是听说过而已 这些概念的释义来自于周志华教授的 机器学习 xff0c 都属于对机器学习算法的性能度量 一 错误率与精度 还是使用书上的定义写的明确 xff0c test set中所有样本预测对
  • [交叉熵损失函数的由来:KL散度] & [softmax+交叉熵损失函数求梯度 推导]

  • SSH基础操作

    这里写自定义目录标题 SSH基础操作SSH免密登录客户端 快捷登录服务器端 sshd配置配置完成后重启服务器端sshd服务 SSH基础操作 span class token function ssh span span class toke
  • Linux下screen的使用

    关掉xshell之后网站也随着关闭 xff0c 我们可以使用screen命令 xff0c 来让保证退出ssh之后程序继续在后台跑 利用SSH远程连接服务器 xff0c 运行程序需要保证在此期间窗口不能关闭并且连接不能断开 xff0c 否则当
  • SAI 串行音频接口学习

    SAI 简介 串行音频接口 xff08 SAI xff09 xff0c SAI具有灵活性高 配置多样的特点 SAI 通过两个完全独立的音频子模块来实现这种灵活性与可配置型 xff0c 每个音频子模块与多达4个引脚 xff08 SD SCK
  • Tensorflow笔记1:Graph

    参考内容都出自于官方API教程tf Graph 一 Graph类调用 这里使用的是1 15版本 xff0c TF官方为了能够在2 0 43 版本中保持兼容 xff0c 因此调用时使用了tf compat v1 Graph 若安装的就是1 1
  • Tensorflow笔记2:Session

    参考内容都出自于官方API教程tf Session 一 Session类基本使用方法 这里使用的是1 15版本 xff0c TF官方为了能够在2 0 43 版本中保持兼容 xff0c 因此调用时使用了tf compat v1 Session
  • Tensorflow笔记3:Variable

    调用Variable类即可向Graph中添加变量 Variable在创建之后需要给定初始值 xff0c 可以是任意type shape的Tensor 一旦使用初始值完成了初始化 xff0c type和shape都固定 xff0c 除非使用a
  • TensorFlow-Slim API 官方教程

    https blog csdn net u014061630 article details 80632736 TF Slim 模块是 TensorFlow 中最好用的 API 之一 尤其是里面引入的 arg scope model var
  • Tensorflow笔记4:Saver

    Saver类位于tf train中 xff0c 属于训练过程中要用到的方法 xff0c 主要作用就是保存和加载save amp restore ckpt 最简单的保存应用举例 xff1a saver span class token pun