Tensorflow中保存模型时生成的各种文件区别和作用

假如我们得到了如下的checkpoints,

上面的文件主要可以分成三类:一种是在保存模型时生成的文件,一种是我们在使用tensorboard时生成的文件,还有一种就是plugins这个文件夹,这个是使用capture tpuprofile工具生成的,该工具可以跟踪TPU的计算过程,并对你的模型性能进行分析,这里就不想详细介绍了。本文主要介绍前面两种文件的作用:

tensorboard文件

  • events.out.tfevents.*...: 保存的就是你的accuracy或者loss在不同时刻的值。
  • graph.pbtxt: 这其实是一个文本文件,保存了模型的结构信息,部分信息如下所示:
    node_def {
      name: "FixedLengthRecordDataset/input_pipeline_task10/buffer_size"
      op: "Const"
      device: "/job:worker/task:10/device:CPU:0"
      attr {
        key: "dtype"
        value {
          type: DT_INT64
        }
      }
      attr {
        key: "value"
        value {
          tensor {
            dtype: DT_INT64
            tensor_shape {
            }
            int64_val: 262144
          }
        }
      }
    }
    node_def {
      name: "FixedLengthRecordDataset"
      op: "FixedLengthRecordDataset"
      input: "FixedLengthRecordDataset/input_pipeline_task10/filenames:output:0"
      input: "FixedLengthRecordDataset/input_pipeline_task10/header_bytes:output:0"
      input: "FixedLengthRecordDataset/input_pipeline_task10/record_bytes:output:0"
      input: "FixedLengthRecordDataset/input_pipeline_task10/footer_bytes:output:0"
      input: "FixedLengthRecordDataset/input_pipeline_task10/buffer_size:output:0"
      device: "/job:worker/task:10/device:CPU:0"
    }
    ...

保存模型时生成的文件

  • checkpoint: 其实就是一个txt文件,存储的是路径信息,我们可以看一下它的内容是什么:
model_checkpoint_path: "model.ckpt-5000"
all_model_checkpoint_paths: "model.ckpt-0"
all_model_checkpoint_paths: "model.ckpt-5000"

可以看到第一行表示最近的一次checkpoints路径信息,也就是说可能因为某种原因你的模型训练中断了。不过没关系,下次重新训练时,会自动从上次的断点继续训练而不用重新训练了。后面两项则表示已经保存的所有断点路径。

  • model.ckpt-*.meta: 其实和上面的graph.pbtxt作用一样都保存了graph结构,只不过meta文件是二进制的,它包括 GraphDef,SaverDef等,当存在meta file,我们可以不在文件中定义模型,也可以运行,而如果没有meta file,我们需要定义好模型,再加载data file,得到变量值。
  • model.ckpt-*.index: 这是一个string-string table,table的key值为tensor名,value为serialized BundleEntryProto。每个BundleEntryProto表述了tensor的metadata,比如那个data文件包含tensor、文件中的偏移量、一些辅助数据等。
  • model.ckpt-*.data-*: 保存了模型的所有变量的值,TensorBundle集合。

MARSGGBO?原创

2019-10-14


原文地址:https://www.cnblogs.com/marsggbo/p/11669902.html

时间: 2024-10-31 15:19:24

Tensorflow中保存模型时生成的各种文件区别和作用的相关文章

Editplus中如何取消自动生成的bak文件

Editplus是一款很好的文本编辑器,但是默认会生成后缀名为.bak的备份文件,很容易造成文件目录的混乱. 其实可以通过修改参数属性,让Editplus不要生成这种文件,以Editplus3.3.1为例, 去掉create backup file when saving 上的勾就行了. 如何设置EditPlus的默认文件格式.编码方式及制表符 首先,在Tools(工具)下拉后选择Preferences(首选项),弹出首选项对话框. 然后,在下面的对话框中的左侧选择Files设置项,在右侧面板中

在php中定义常量时,const与define的区别

[问]在php中定义常量时,const与define的区别? [答]使用const使得代码简单易读,const本身就是一个语言结构,而define是一个函数.另外const在编译时要比define快很多. (1).const用于类成员变量的定义,一经定义,不可修改.define不可用于类成员变量的定义,可用于全局常量. (2).const可在类中使用,define不能. (3).const不能在条件语句中定义常量. 例如: if (...){ const FOO = 'BAR';  // 无效的

Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 (需要在运行时生成core dump文件,QMAKE_CC += -g)

记录一下 Ubuntu16.04下写的Qt程序,调试时没问题,运行时偶现崩溃 需要在运行时生成core dump文件 首先在pro结尾里加入 QMAKE_CC += -g QMAKE_CXX += -g QMAKE_LINK += -g 在终端输入 ulimit -c 显示为 0 然后输入 ulimit -c unlimited 继续在终端运行编写的程序 出错后,会在当前目录生成 core 文件 然后在终端执行 “gdb 你的程序名 core” 然后输入 bt 对该错误进行跟踪调试 (gdb)

VS中bin,app_code,app_data,app_browser,app_GlobalResources等文件夹的作用 .

1.  Bin文件夹 Bin文件夹包含应用程序所需的,用于控件.组件或者需要引用的任何其他代码的可部署程序集.该目录中存在的任何.dll文件将自动地链接到应用程序.如果在该文件夹中留有不用的或过期的文件,则可能出现“二义性引用(ambiguous  reference)”异常的风险.换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则ASP.NET运行库不能决定应该使用哪一个程序集,从而抛出一个异常.在开发时,当我们重新命名一个项目或一个程序集的名称时,这是常见的错误.为了避免

Tensorflow Lite tflite模型的生成与导入

假如想要在ARM板上用tensorflow lite,那么意味着必须要把PC上的模型生成tflite文件,然后在ARM上导入这个tflite文件,通过解析这个文件来进行计算. 根据前面所说,tensorflow的所有计算都会在内部生成一个图,包括变量的初始化,输入定义等,那么即便不是经过训练的神经网络模型,只是简单的三角函数计算,也可以生成一个tflite模型用于在tensorflow lite上导入.所以,这里我就只做了简单的sin()计算来跑一编这个流程. 生成tflite模型 这部分主要是

ABS(Android Build System)中在编译时生成源代码文件

编译时经常有的需求是有些.c或者.h文件需要在编译时由某个接口定义文件生成.同时还可能有下面的需求: * 同一个接口定义文件会用于产生多个源文件. * 生成的源文件可能会被其它的Project使用. 举例来说,现在需要从接口定义文件xxx.xml通过可执行文件generator生成源文件xxx_A.h,xxx_B.h和xxx_C.c.命令为: generator A < xxx.xml > xxx_A.h generator B < xxx.xml > xxx_B.h genera

SqlAlchemy 中操作数据库时session和scoped_session的区别

原生session: from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalchemy应用.models import Users engine = create_engine( "mysql+pymysql://root:[email protected]:3306/pro6?charset=utf8", max_overflow=0, # 超过连接池大小外最多创建

Linux中定时清除指定目录中30分钟前生成的特定文件

1,在/root/deltts目录下,创建脚本 vi clearBigtrc03.sh,输入以下脚本.保存并退出 #!/bin/sh find /root/uploadFiles -mmin +30 -name *.mp3 -exec rm {} \; 2,给文件赋予执行权限 chmod 755 clearBigtrc03.sh 3,添加Linux中的定时任务 输入crontab -e打开定时任务编辑,在最后增加一行如下,然后保存退出 表示每3分钟执行一次脚本 */3 * * * * /root

Python脚本---把MySQL数据库表中的数据导出生成csv格式文件

转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/45841221 #!/usr/bin/env python # -*- coding:utf-8 -*- """  Purpose: 生成日汇总对账文件  Created: 2015/4/27  Modified:2015/5/1  @author: guoyJoe""" #导入模块import MySQLdbimport timeimpo