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

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

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

上面的文件主要可以分成三类:一种是在保存模型时生成的文件,一种是我们在使用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集合。


上一篇:关于scrapy无法下载图片 pipeline不执行 解决办法 记一次大坑


下一篇:JenkinsShareLibrary实践之自定义通知器