【昇思初学入门】第八天打卡-模型保存与加载

模型保存与加载

学习心得

  • 保存 CheckPoint 格式文件 ,在模型训练过程中,可以添加检查点(CheckPoint)用于保存模型的参数,以便进行推理及再训练使用。如果想继续在不同硬件平台上做推理,可通过网络和CheckPoint格式文件生成对应的MINDIR、AIR和ONNX格式文件。

    python 复制代码
    model = network()
    mindspore.save_checkpoint(model, "model.ckpt")

    可以通过CheckpointConfig对象可以设置CheckPoint的保存策略。

    • save_checkpoint_steps表示每隔多少个step保存一次。
    • keep_checkpoint_max表示最多保留CheckPoint文件的数量。
    • prefix表示生成CheckPoint文件的前缀名。
    • directory表示存放文件的目录。
    python 复制代码
    from mindspore.train.callback import ModelCheckpoint, CheckpointConfig
    config_ck = CheckpointConfig(save_checkpoint_steps=32, keep_checkpoint_max=10)
    ckpoint_cb = ModelCheckpoint(prefix='resnet50', directory=None, config=config_ck)
    model.train(epoch_num, dataset, callbacks=ckpoint_cb)

    要加载模型权重,需要先创建相同模型的实例,然后使用load_checkpointload_param_into_net方法加载参数。

    python 复制代码
    	model = network()
    	param_dict = mindspore.load_checkpoint("model.ckpt")
    	param_not_load, _ = mindspore.load_param_into_net(model, param_dict)
    	print(param_not_load)

    param_not_load是未被加载的参数列表,为空时代表所有参数均加载成功。

    cmd 复制代码
    [] 
  1. 保存和加载MindIR ,当有了CheckPoint文件后,如果想继续在MindSpore Lite端侧做推理,需要通过网络和CheckPoint生成对应的MINDIR格式模型文件。

    • 统一表示:MindIR作为MindSpore云侧(训练)和端侧(推理)的统一模型文件,同时存储了网络结构和权重参数值。这使得MindSpore能够在不同的硬件平台上实现一次训练多次部署的能力。
    • 导出MindIR:MindSpore提供了export接口,可以直接将模型保存为MindIR格式。
    • 保存模型
    python 复制代码
    model = network()
    inputs = Tensor(np.ones([1, 1, 28, 28]).astype(np.float32))
    mindspore.export(model, inputs, file_name="model", file_format="MINDIR")
    • 加载模型
    python 复制代码
    mindspore.set_context(mode=mindspore.GRAPH_MODE)
    graph = mindspore.load("model.mindir")
    model = nn.GraphCell(graph)
    outputs = model(inputs)
    print(outputs.shape)
相关推荐
政安晨13 分钟前
政安晨【零基础玩转各类开源AI项目】基于Ubuntu系统部署ComfyUI:功能最强大、模块化程度最高的Stable Diffusion图形用户界面和后台
神经网络·机器学习·aigc·sd·stable-diffusion·comfyui·stabilityai
LewisFung40 分钟前
性能超越 YOLO、GPT-4 的图像自动标注工具:T-Rex Label
人工智能·深度学习·计算机视觉
快乐点吧1 小时前
【深度学习基础】`view` 和 `reshape` 的参数详解
人工智能·深度学习·自然语言处理
松下J271 小时前
深度学习 --- stanford cs231学习笔记七(训练神经网络之梯度下降优化器)
人工智能·深度学习·神经网络·梯度下降·sgd
不要em0啦2 小时前
PyTorch - 神经网络基础
人工智能·pytorch·神经网络
pictoexcel2 小时前
名片批量转换为结构化Excel注意的事项
人工智能·深度学习·神经网络·机器学习·ocr·excel
Elfin_z3 小时前
【深度学习练习】心脏病预测
人工智能·深度学习
华为云开发者联盟3 小时前
结合RNN与Transformer双重优点,深度解析大语言模型RWKV
rnn·深度学习·大模型·transformers·rwkv·华为云开发者联盟
奔袭的算法工程师4 小时前
毫米波雷达深度学习技术-1.7训练一个神经网络
人工智能·深度学习·神经网络·目标检测·自动驾驶
fengbeely4 小时前
《大模型进化论》第2章2节:从神经网络到预训练——近十年的显著突破与进展
人工智能·深度学习·神经网络