model.ckpt.meta:保存TensorFlow计算图的结构
model.ckpt:保存了TensorFlow程序中每一个变量的取值
checkpoint文件:保存了一个目录下所有的模型文件列表
持久化的四种方式
- 可以restore ckpt文件,读取变量的取值,不过需要定义计算图上的所有运算
- 如果不希望重复定义图上的运算,可以直接加载已经持久化的图ckpt.meta文件,也要restore ckpt文件
- 给变量重命名,方便使用变量的滑动平均值
- 有时只需要知道如何从神经网络的输入层经过前向传播计算得到输出层即可,不需要类似于变量初始化、模型保存等辅助节点的信息。可以使用convert_variables_to_constants,通过这个函数可以将计算图中的变量及其取值通过常量的方式保存,这个整个TensorFlow计算图可以统一存放在一个文件中
持久化原理及数据格式
TensorFlow持久化是利用了Protocol Buffer实现的,为了方便调试,TensorFlow提供了export_meta_graph函数,支持以json格式到处MetaGraphDef Protocol Buffer。可以结合json、tensorboard来理解下TensorFlow的计算图。