转载请注明出处:

http://www.cnblogs.com/darkknightzh/p/7198773.html

参考网址:

http://stackoverflow.com/questions/41265035/tensorflow-why-there-are-3-files-after-saving-the-model

1. 保存模型

tensorflow中saver使用如下代码保存模型时(假设程序位于/home/xxx/test,模型保存在/home/xxx/test/model。下面是简化的代码),使用下面的代码:

saver = tf.train.Saver(tf.trainable_variables(), max_to_keep=3)

saver.save(sess, 'model/model.ckpt', global_step=step, write_meta_graph=False)
if not os.path.exists(' model/model.meta'):
saver.export_meta_graph(metagraph_filename)

会保存下面这些文件:

每次都会保存.meta(可以判断是否有该文件,如果没有才保存)。

每次都会保存.ckpt-step.index和.ckpt-step.data-00000-of-00001文件(模型太大不清楚是否会有.ckpt-number.data-00000-of-00002等等文件)。

checkpoint文件内,会有下面的内容:

model_checkpoint_path: "/home/xxx/test/model/model.ckpt-16000"
all_model_checkpoint_paths: "/home/xxx/test/model/model.ckpt-12000"
all_model_checkpoint_paths: "/home/xxx/test/model/model.ckpt-14000"

2. 恢复模型参数,继续训练

当需要恢复某个模型的参数,继续进行训练时,可以使用下面的代码:

saver.restore(sess, ‘model/model.ckpt-16000’)

这样便可以恢复训练时的最后一个模型参数。

不需要加上后缀.index或者.data-00000-of-00001。

3. 直接载入meta graph及模型参数

在测试时,可以通过下面的代码直接通过meta graph构建网络、载入训练时得到的参数,并使用默认的session:

saver = tf.train.import_meta_graph(‘model/model.meta’)
saver.restore(tf.get_default_session(),’ model/model.ckpt-16000’)

(原)tensorflow保存模型及载入保存的模型的更多相关文章

  1. Keras保存模型并载入模型继续训练

    我们以MNIST手写数字识别为例 import numpy as np from keras.datasets import mnist from keras.utils import np_util ...

  2. TensorFlow 训练好模型参数的保存和恢复代码

    TensorFlow 训练好模型参数的保存和恢复代码,之前就在想模型不应该每次要个结果都要重新训练一遍吧,应该训练一次就可以一直使用吧. TensorFlow 提供了 Saver 类,可以进行保存和恢 ...

  3. (原+译)使用numpy.savez保存字典后读取的问题

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/7608928.html 参考网址; https://stackoverflow.com/question ...

  4. dedecms新建内容模型“把数据保存到数据库附加表时出错‘xxx’出错”错误的原因分析和解决方案(转)

    把数据保存到数据库附加表 `bc_addonarticle17` 时出错,请把相关信息提交给DedeCms官方.INSERT INTO `bc_addonarticle17`(aid,typeid,r ...

  5. 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记10——三维天空的构建&三维粒子的实现&多游戏模型的载入

    第23章 三维天空的构建 目前描述三维天空的技术主要包括三种类型,直接来介绍使用最广泛的模拟技术,详细的描述可以见作者的博文. 天空盒(Sky Box),即放到场景的是一个立方体.它是目前使用最广泛的 ...

  6. Tensorflow object detection API 搭建物体识别模型(四)

    四.模型测试 1)下载文件 在已经阅读并且实践过前3篇文章的情况下,读者会有一些文件夹.因为每个读者的实际操作不同,则文件夹中的内容不同.为了保持本篇文章的独立性,制作了可以独立运行的文件夹目标检测. ...

  7. Tensorflow object detection API 搭建物体识别模型(一)

    一.开发环境 1)python3.5 2)tensorflow1.12.0 3)Tensorflow object detection API :https://github.com/tensorfl ...

  8. Tensorflow object detection API 搭建物体识别模型(二)

    二.数据准备 1)下载图片 图片来源于ImageNet中的鲤鱼分类,下载地址:https://pan.baidu.com/s/1Ry0ywIXVInGxeHi3uu608g 提取码: wib3 在桌面 ...

  9. Tensorflow 使用slim框架下的分类模型进行分类

    Tensorflow的slim框架可以写出像keras一样简单的代码来实现网络结构(虽然现在keras也已经集成在tf.contrib中了),而且models/slim提供了类似之前说过的object ...

随机推荐

  1. WebService入门Demo

    以前写博客最主要的就是不知道写什么东西,现在感觉能写点东西,就是感觉博客随笔的标题挺难取的,最近工作中刚好用到了WebService,刚好可以写一篇博客.去年工作的时候自己也用到过,只是知道调用一些W ...

  2. Java方法containsAll学习

    有时候我们需要判断B链表是不是A链表的子集,我们可以使用A.containsAll(B)来判断,当返回值是true的时候就表明B链表是A链表的子集,当返回值是false时候就表明B链表不是A链表的子集 ...

  3. spark0.8.0安装与学习

    spark0.8.0安装与学习       原文地址:http://www.yanjiuyanjiu.com/blog/20131017/ 环境:CentOS 6.4, Hadoop 1.1.2, J ...

  4. StackPanel

    StackPanel 的 HorizontalAlignment 属性和 VerticalAlignment 属性 默认情况下,这两个属性都被设置为 Stretch.

  5. Pandas DataFrame笔记

    1.属性方式,可以用于列,不能用于行 2.可以用整数切片选择行,但不能用单个整数索引(当索引不是整数时) 3.直接索引可以使用列.列集合,但不能用索引名索引行 用iloc取行,得到的series: d ...

  6. docker swarm join如何获取token

    在运行docker swarm join的时候需要一个token参数,如何知道这个参数那? [答案] Join as a worker node To retrieve the join comman ...

  7. 怎样在一个项目里用logger在控制台打印信息

    第一步: 导入jar包,maven项目可以直接添加 <dependency><groupId>log4j</groupId><artifactId>lo ...

  8. 关于Linux路由表的route命令

    转自:http://www.cnblogs.com/gunl/archive/2010/09/14/1826234.html 查看 Linux 内核路由表 使用下面的 route 命令可以查看 Lin ...

  9. mysql 分区说明

    当 MySQL的总记录数超过了100万后,性能会大幅下降,可以采用分区方案 分区允许根据指定的规则,跨文件系统分配单个表的多个部分.表的不同部分在不同的位置被存储为单独的表. 1.先看下innodb的 ...

  10. 【转】Java四种线程池的使用

    Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.newFixe ...