一、state_dict 格式与 inference_model 格式
- 使用
paddle.save
存储的是state_dict
格式的模型,共保存“path.pdparams”
、“path.pdopt”
两个文件。
path.pdparams
中存储的是模型的持久参数变量。
path.pdopt
中存储的是优化器中的信息,因此存储为 state_dict 格式的模型多用于保存 checkpoint,方便以后继续模型训练。 - 使用
paddle.jit.save
存储的是inference_model
格式的模型,共保存“path.pdiparams”
、“path.pdiparams.info”
、“path.model”
三个文件。
path.pdiparams
中保存的是模型的持久参数变量。
path.pdiparams.info
中保存的是变量描述信息,这些额外的信息将在 fine-tune 训练中使用。
path.model
中保存的是模型结构,因此读取 inference_model 格式的模型时,无需先读取模型结构,方便预测调优。
在读取模型时,paddle.jit.load
可以读取 paddle.jit.save
存储的模型,而 paddle.load
不但可以读取 paddle.save
存储的模型,也可以读取 paddle.jit.save
存储的模型。
二、四个接口的关系
paddle.save、paddle.load、paddle.jit.save、paddle.jit.load 四个接口的关系如下图:(图片来自 Paddle 2.0 rc
官方文档)
三、使用 predict.py 脚本进行推理
详情见 paddleclas 学习笔记:模型推理 第五章节。