如何保存 PyTorch 模型?2025 年 3 月 28 日 | 阅读 6 分钟 什么是 PyTorch?PyTorch 是 Facebook 人工智能实验室 (FAIR) 开发的开源深度学习框架。 它通常因其灵活性、易用性以及处理快速原型设计的强大功能而得到广泛使用。 PyTorch 提供了强大的计算图,这意味着该图是动态构建的,使其易于更改和调试。 这与静态计算图有所不同,在静态计算图中,图一旦定义就无法修改,除非重新编译。 PyTorch 的主要特点包括
在 PyTorch 中保存和加载模型的逐步指南在 PyTorch 中保存和加载模型是任何从事深度学习工作的人的基本技能。 本指南将涵盖保存和加载 PyTorch 模型的各种策略,包括保存状态词典、保存整个模型以及处理这些任务的最佳实践。 第 1 步:安装 PyTorch 在开始之前,确保您已安装 PyTorch。 您可以使用 pip 安装它 第 2 步:定义您的模型 首先,定义一个神经网络模型。 这是一个使用完全关联网络的简单模型 第 3 步:训练您的模型 为演示目的使用假数据训练模型 输出 Model training complete 保存和加载模型在 PyTorch 中保存和加载模型有两种基本策略
方法 1:保存和加载模型参数 (state_dict) 由于其灵活性和效率,保存状态词典是最推荐的策略。 保存 state_dict 输出 Model state_dict saved 加载 state_dict 输出 Model state_dict loaded 方法 2:保存和加载整个模型保存整个模型包含结构和边界。 对于一些用例,此技术不太灵活,但更直接。 保存整个模型 输出 Entire model saved 加载整个模型 输出 Entire model loaded 保存和加载模型的最佳实践使用 state_dict 以获得灵活性和效率 通常,由于其灵活性和效率,使用 state_dict 是最佳实践。 它允许您在不同的内容中重新生成模型设计,并加载边界,从而更直接地管理更改和更新。 如果您计划恢复训练,请保存优化器 假设您打算继续准备,请始终将优化器的 state_dict 与模型的 state_dict 一起保存。 这可以确保增强器的边界(如学习率和力)得到正确恢复。 保存模型和优化器 state_dict 输出 Model and optimizer state_dict saved 加载模型和优化器 state_dict 输出 Model and optimizer state_dict loaded 小心处理设备转换在保存和加载模型时,请注意所用的设备(computer CPU 或 GPU)。 这是处理设备转换的方式 在 GPU 上保存,在 CPU 上加载 输出: Model loaded on CPU 在 GPU 上保存,在 GPU 上加载 输出 Model loaded on GPU 在 CPU 上保存,在 GPU 上加载 输出 Model loaded on GPU 使用 eval() 进行推理 在执行归纳之前,请持续将模型设置为评估模式,使用 model.eval()。 这可以确保 dropout 和分组标准化等层能够正常运行。 训练期间的检查点对于长时间的准备过程,定期保存指定点是个好主意。 通过这种方式,您可以在出现中断时从最后的指定点继续准备。 定期保存检查点 输出 Checkpoint saved at epoch 0. Checkpoint saved at epoch 10. Checkpoint saved at epoch 20. Checkpoint saved at epoch 30. Checkpoint saved at epoch 40. Checkpoint saved at epoch 50. Checkpoint saved at epoch 60. Checkpoint saved at epoch 70. Checkpoint saved at epoch 80. Checkpoint saved at epoch 90. Model training complete. 从检查点恢复训练 输出 Resuming training from epoch 91 with loss [loss value]. Checkpoint saved at epoch 100. Model training complete. 高级用法使用自定义项目保存和加载 如果您的模型包含自定义项目(例如自定义层),则在加载模型时,您需要保证这些项目已准确定义。 定义自定义模型 加载自定义模型 输出 Custom model state_dict loaded. 结论总之,掌握在 PyTorch 中保存和加载模型的技巧对于有效的深度学习项目管理至关重要。 本指南重点介绍了基本实践,例如由于其灵活性和生产力而使用 state_dict 进行边界功能,以及同时保存分析器以实现连续准备恢复。 简单地保存和加载,但对于架构更改或迁移学习方案,灵活性较低。 小心处理设备转换并保证模型在推断过程中设置为评估模式对于避免错误至关重要。 执行定期的检查点改进工作流程的多功能性,从而能够持续进行准备和观察进度。 这些实践与高级技术(如管理自定义项目和众多模型)相结合,使专家能够保持强大且可重现的 PyTorch 深度学习工作流程。 通过结合这些方法,开发人员可以提高效率、协作能力及其 人工智能应用的可靠性。 |
我们请求您订阅我们的新闻通讯以获取最新更新。