模型保存与加载
模型的保存与加载主要涉及到如下八个API: fluid.io.save_vars
、fluid.io.save_params
、fluid.io.save_persistables
、fluid.io.save_inference_model
、fluid.io.load_vars
、fluid.io.load_params
、fluid.io.load_persistables
和 fluid.io.load_inference_model
。
变量、持久性变量和参数
在 Paddle
中,算子(Operator
)的每一个输入和输出都是一个变量(Variable
),而参数(Parameter
)是变量(Variable
)的子类。持久性变量(Persistables
)是一种在每次迭代结束后均不会被删除的变量。参数是一种持久性变量,其在每次迭代后都会被优化器(优化器)更新。训练神经网络本质上就是在更新参数。
模型保存API介绍
fluid.io.save_vars
:通过执行器(执行引擎)保存变量到指定的目录中。保存变量的方式有两种:
1)通过接口中的 vars
指定需要保存的变量列表。
2)将一个已经存在的程序(Program
)赋值给接口中的 main_program
,然后这个程序中的所有变量都将被保存下来。
第一种保存方式的优先级要高于第二种。
API Reference 请参考 save_vars。
fluid.io.save_params
:通过接口中的main_program
指定好程序(Program
),该接口会将所指定程序中的全部参数(Parameter
)过滤出来,并将它们保存到dirname
指定的文件夹或filename
指定的文件中。
API Reference 请参考 save_params。
fluid.io.save_persistables
:通过接口中的main_program
指定好程序(Program
),该接口会将所指定程序中的全部持久性变量(persistable==True
)过滤出来,并将它们保存到dirname
指定的文件夹或filename
指定的文件中。
API Reference 请参考 save_persistables。
fluid.io.save_inference_model
:请参考 预测引擎。
模型加载API介绍
fluid.io.load_vars
:通过执行器(Executor
)加载指定目录中的变量。加载变量的方式有两种:
1)通过接口中的 vars
指定需要加载的变量列表。
2)将一个已经存在的程序(Program
)赋值给接口中的 main_program
,然后这个程序中的所有变量都将被加载。
第一种加载方式的优先级要高于第二种。
API Reference 请参考 load_vars。
fluid.io.load_params
:该接口从main_program
指定的程序中过滤出全部参数(Parameter
),并试图从dirname
指定的文件夹或filename
指定的文件中加载这些参数。
API Reference 请参考 load_params。
fluid.io.load_persistables
:该接口从main_program
指定的程序中过滤出全部持久性变量(persistable==True
),并试图从dirname
指定的文件夹或filename
指定的文件中加载这些持久性变量。
API Reference 请参考 load_persistables。
fluid.io.load_inference_model
:请参考 预测引擎。