参考文献:
paddle官网:模型保存与载入
场景分为两种:
- 训练调优场景
- 训练部署场景
模型也分为两种: - 静态图模型
- 动态图模型
一般我写的训练代码都是训练场景的动态图模式
思想和pytorch类似,非常好理解
保存和加载的代码如下:
# save
paddle.save(layer.state_dict(), "linear_net.pdparams")
paddle.save(adam.state_dict(), "adam.pdopt")
# load
layer_state_dict = paddle.load("linear_net.pdparams")
opt_state_dict = paddle.load("adam.pdopt")
layer.set_state_dict(layer_state_dict)
adam.set_state_dict(opt_state_dict)
问题是:公司需要推断测试场景用的是:推断库。它需要用部署场景下的静态图。
所以每次训练完成之后,后需要把动态图转化为静态图保存下来
代码如下:
解释:layer是网络模型,比如 layer= MNIST()
,并且需要加上
def saveModel(self,layer,modelPath):
print("------ save model ------")
print(modelPath)
layer.eval()
image_shape = [None, 3, self.resize, self.resize]
input_spec = [
InputSpec(
shape=image_shape, name='image', dtype='float32')
]
layer = paddle.jit.to_static(layer,input_spec)
inference_dirs = osp.join(modelPath, 'inference_model')
if not os.path.exists(inference_dirs):
os.makedirs(inference_dirs)
name=inference_dirs+"/model"
paddle.jit.save(layer, name) #
更多推荐
paddle 模型保存
发布评论