• 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



  • 相关阅读:
    PHP date函数时间相差8个小时解决办法
    PHP中include()与require()的区别说明
    post与get区别
    MFC 对话框控件自动布局
    Apache php Mysql部署(一)下载安装
    apache 重定向
    clistctrl失去焦点高亮显示选中行
    格式化字符串
    unicode编码与utf-8 区别
    string的实现
  • 原文地址:https://www.cnblogs.com/marsggbo/p/11669902.html
Copyright © 2020-2023  润新知