paddle模型的保存与加载

本文介绍了如何在PaddlePaddle框架中保存和加载模型,包括参数的单独保存、模型结构与参数的联合保存,以及针对训练部署的不同场景。通过实例演示了paddle.save, paddle.load, paddle.jit.save/load以及静态图模型的保存方式。

一、什么是模型的保存与加载?
人工智能模型本质上就是一堆参数,我们训练模型时就是使这些参数在某个任务上合理以使其能够得到较为准确预测结果输出。例如猫狗分类任务,训练一系列卷积核数值能够通过前向计算预测出类别。我们花了大量时间训练的模型肯定不想只训练结束后只使用一次,我们想的肯定是能够重复使用这个模型在后续的任务上继续做预测。那就涉及到模型的保存与加载。
二、模型的保存
paddle框架中模型保存加载相关API
paddle.save
paddle.load
paddle.jit.save
paddle.jit.load
paddle.static.save_inference_model
paddle.static.load_inference_model
其中paddle.save/load用于只保存/载入模型参数
paddle.jit.save/load可用于保存模型结构用作以后的推理
paddle.static.save_inference_model/load_inference_model用于保存静态图模型
api关系图
在这里插入图片描述

下面以一个paddle官方文档中给出的一个例子学习这几个api的使用,我会详细地注释每一行代码。

import numpy as np#引入nunpy计算包
import paddle#引入paddle包
import paddle.nn as nn#引入网络结构包
import paddle.optimizer as opt#引入优化器包

BATCH_SIZE = 16#batch_size:表示一批数据包含多少条数据,这里是16条数据
BATCH_NUM = 4#batch数
EPOCH_NUM = 4#训练轮数

IMAGE_SIZE = 784#输入数据尺寸
CLASS_NUM = 10#标签类别数

# define a random dataset
class RandomDataset(paddle.io.Dataset):#生成数据集类,模拟一个数据集
    def __init__(self, num_samples):
        self.num_samples = num_samples#样本数

    def __getitem__(self, idx):
        image = np.random.random([IMAGE_SIZE]).astype('float32')#生成数据
        label = np.random.randint(0, CLASS_NUM - 1, (1, )).astype('int64')#生成标签
        return image, label

    def __len__(self):
        return self.num_samples

class LinearNet(nn.Layer):#搭建网络结构
    def __init__(self):
        super(LinearNet, se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值