码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-14 10:42:54      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:技术   计算   line   raft   训练   white   是你   cpu   value   

假如我们得到了如下的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



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

标签:技术   计算   line   raft   训练   white   是你   cpu   value   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!