在这一节课程的学习中,我学习了如何保存和加载模型,以便在训练之后进行模型微调、模型推理和部署等任务。
首先,我学会了如何保存和加载模型权重。要保存模型权重,使用save_checkpoint
接口,并传入要保存的网络和保存路径。这将保存网络的参数权重,以便后续加载使用。要加载模型权重,我们需要创建相同模型结构的实例,并使用load_checkpoint
和load_param_into_net
方法加载参数。在加载过程中,我们可以获取未被成功加载的参数列表,以确保加载的准确性。
除了模型权重,MindSpore还提供了保存和加载MindIR(Intermediate Representation)的功能。MindIR是一种统一的中间表示,用于训练和推理。我们可以使用export
接口将模型保存为MindIR,这同时保存了模型的权重和结构信息。在保存MindIR时,需要定义输入Tensor来获取输入的形状信息。已有的MindIR模型可以通过load
接口加载,并传入nn.GraphCell
来进行推理。需要注意的是,nn.GraphCell
仅支持图模式的推理。
通过保存和加载模型,我们可以方便地复用已经训练好的模型,进行模型微调、模型推理和部署等任务,从而提高模型的效率和应用的灵活性。