【几分钟】快速熟悉torch.save()、torch.load()、torch.nn.Module.load_state_dict()

【几分钟】快速熟悉torch.save()、torch.load()、torch.nn.Module.load_state_dict()


🌵文章目录🌵

  • 🌳引言🌳
  • 🌳torch.save()详解🌳
  • 🌳torch.load()详解🌳
  • 🌳torch.nn.Module.load_state_dict()详解🌳
  • 🌳保存并加载模型的几种方式🌳
  • 🌳总结🌳
  • 🌳结尾🌳


🌳引言🌳

在PyTorch中,模型训练完成后通常需要保存以便后续使用或进行进一步的训练。PyTorch提供了几种方法来实现模型的保存和加载,其中torch.save(), torch.load()torch.nn.Module.load_state_dict()是最常用的函数。本文将用几分钟的时间带您快速熟悉这三个函数的使用方法和注意事项。


🌳torch.save()详解🌳

torch.save()函数用于保存模型的状态或整个模型。其用法如下:

torch.save(obj, f)
  • obj: 要保存的对象,可以是模型的状态字典、整个模型等。
  • f: 保存文件的路径。

当有保存模型的需求时,通常推荐只保存模型的参数(即状态字典),而不是整个模型实例。这样可以避免保存模型定义时的额外信息,比如优化器的状态等,保存模型的示例如下:

# 保存模型的状态字典
torch.save(model.state_dict(), 'model_state_dict.pth')# 如果需要保存整个模型,可以这样做,但通常不推荐
torch.save(model, 'model.pth')

🌳torch.load()详解🌳

torch.load()函数用于加载之前保存的模型或状态字典。其用法如下:

torch.load(f, map_location=None)
  • f: 加载文件的路径。
  • map_location: 指定加载模型到哪个设备上,比如CPU或特定的GPU。

加载模型时,需要根据保存时的方式选择加载整个模型还是仅加载状态字典

# 加载状态字典
state_dict = torch.load('model_state_dict.pth')# 加载整个模型(如果之前是这样保存的)
model = torch.load('model.pth')

🌳torch.nn.Module.load_state_dict()详解🌳

torch.nn.Module.load_state_dict()是PyTorch模型类(继承自torch.nn.Module)的一个方法,用于加载状态字典。其用法如下:

model.load_state_dict(state_dict, strict=True)
  • state_dict: 要加载的状态字典。
  • strict: 是否严格检查加载的状态字典与模型当前的状态字典是否完全匹配。默认为True。

使用load_state_dict()加载状态字典时,需要先实例化模型类,然后调用此方法加载之前保存的状态

# 实例化模型类
model = MyModel()# 加载状态字典
model.load_state_dict(torch.load('model_state_dict.pth'))

🌳保存并加载模型的几种方式🌳

  1. 仅保存和加载状态字典

    这是推荐的方式,因为它只保存和加载模型的参数,不包含其他不必要的信息。

# 保存
torch.save(model.state_dict(), 'model_state_dict.pth')# 加载
model = MyModel()
model.load_state_dict(torch.load('model_state_dict.pth'))
  1. 保存和加载整个模型

    这种方式会保存模型的所有信息,包括参数、优化器状态等。但这种方式不够灵活,通常不推荐。

# 保存
torch.save(model, 'model.pth')# 加载
model = torch.load('model.pth')

🌳总结🌳

在PyTorch中,模型的保存和加载主要通过torch.save(), torch.load()torch.nn.Module.load_state_dict()实现。推荐的做法是只保存和加载模型的状态字典,这样更加灵活且只包含模型的核心信息。在加载模型时,需要先实例化模型类,然后使用load_state_dict()方法加载状态字典。


🌳结尾🌳

亲爱的读者,首先感谢抽出宝贵的时间来阅读我们的博客。我们真诚地欢迎您留下评论和意见💬
俗话说,当局者迷,旁观者清。的客观视角对于我们发现博文的不足、提升内容质量起着不可替代的作用。
如果博文给您带来了些许帮助,那么,希望能为我们点个免费的赞👍👍/收藏👇👇您的支持和鼓励👏👏是我们持续创作✍️✍️的动力
我们会持续努力创作✍️✍️,并不断优化博文质量👨‍💻👨‍💻,只为给带来更佳的阅读体验。
如果有任何疑问或建议,请随时在评论区留言,我们将竭诚为你解答~
愿我们共同成长🌱🌳,共享智慧的果实🍎🍏!


万分感谢🙏🙏点赞👍👍、收藏⭐🌟、评论💬🗯️、关注❤️💚~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/677263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php文件请求

/** Common File Request Method */ $file $request->file(‘file’); $file->getClientOriginalName(); // Returns the original file name $file->getClientOriginalExtension(); // Returns the original file extension $file->getClientMimeType(); // Ret…

c++之说_11|自定义类型 enum(枚举)与enumclass (c11新枚举)

至于枚举 会用就行 至少目前我感觉没什么太多问题 enum 被称为无作用域枚举 , enumclass / enumstruct 被称为有作用域枚举 看到了吧 语法规则 和 struct 差不多 只不过枚举成员 只是一个标志 它本质是数值 从上到下 下面的数根据上面的数 加 1 也可以直接…

YUM | 包安装 | 管理

YUM 功能 软件包安装&#xff1a; 通过yum命令安装软件包。例如&#xff0c;安装一个名为 example-package 的软件包 yum install example-package更新包 检查更新&#xff1a; 检查可用更新&#xff1a; sudo yum check-update <package_name>软件包更新&#xff1a; y…

python_ACM模式《剑指offer刷题》二叉树2

题目&#xff1a; 面试tips&#xff1a; 面试官有可能问到&#xff1a; 如果你需要频繁地查找第 k 小的值&#xff0c;你将如何优化算法&#xff1f;&#xff08;见思路三&#xff09; 思路&#xff1a; 思路一&#xff1a;二叉搜索树最大的特点就是中序遍历是递增的。因此…

蓝桥杯每日一题------背包问题(一)

背包问题 阅读小提示&#xff1a;这篇文章稍微有点长&#xff0c;希望可以对背包问题进行系统详细的讲解&#xff0c;在看的过程中如果有任何疑问请在评论区里指出。因为篇幅过长也可以进行选择性阅读&#xff0c;读取自己想要的那一部分即可。 前言 背包问题可以看作动态规…

CTFSHOW命令执行web入门29-54

description: >- 这里就记录一下ctfshow的刷题记录是web入门的命令执行专题里面的题目,他是有分类,并且覆盖也很广泛,所以就通过刷这个来,不过里面有一些脚本的题目发现我自己根本不会笑死。 如果还不怎么知道写题的话,可以去看我的gitbook,当然csdn我也转载了我自己的…

12.3 OpenGL顶点后处理:平面着色

平面着色 Flatshading Flat shading (平面着色)是一种简化渲染技术&#xff0c;它在光栅化阶段将一个图元&#xff08;primitive&#xff09;的所有顶点赋予相同的颜色或其它输出变量的值。这些赋予的值来自于该图元的“引发顶点”&#xff08;provoking vertex&#xff09;。…

幻兽帕鲁服务器怎么更新?如何快速在腾讯云更新幻兽帕鲁Palworld服务器,显示版本不兼容怎么解决

幻兽帕鲁服务器怎么更新&#xff1f;如何快速在腾讯云更新幻兽帕鲁Palworld服务器&#xff0c;显示版本不兼容怎么解决。最近的幻兽帕鲁服务器又更新了。 如何在不需要远程登录服务器的情况下&#xff0c;通过一行命令来更新幻兽帕鲁呢&#xff1f; 腾讯云轻量云一键部署幻兽…

为什么说重载发生在编译期而重写发生在运行期

为什么说重载发生在编译期而重写发生在运行期 重载发生在编译期而重写发生在运行期。具体解释如下&#xff1a; 重载&#xff08;Overloading&#xff09;&#xff1a;是在同一类中发生的&#xff0c;编译器在编译时期就能根据方法名和参数列表确定调用哪个方法。因此&#x…

Android编程权威指南(第四版)- 第 4 章 UI状态的保存与恢复

文章目录 代码&#xff1a;依赖MainActivityQuizViewModelQuestion知识点 代码&#xff1a; 大体是一样的&#xff0c;修改了一些 依赖 implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")MainActivity package com.example.geoquizimport android…

今年春节,德施曼成“春晚御用”智能锁,亮相总台春晚直播间

总台春晚&#xff0c;是每年春节期间的最大热点。 今年除夕夜&#xff0c;高端智能锁品牌德施曼&#xff0c;不仅成为“春晚御用”智能锁&#xff0c;还将旗下的哨兵猫眼智能锁&#xff0c;卖到了总台春晚的直播间里。龙年春节&#xff0c;德施曼智能锁携手小红书《大家的春晚》…

金融信贷风控评分卡模型

评分卡模型概念 评分模型是根据借款人的历史数据&#xff0c;选取不同维度的数据类型&#xff0c;通过计算而得出的对借款人信用情况打分的模型。不同等级的信用分数代表了借款人信用情况的好坏&#xff0c;以此来分析借款人按时还款的可能性。 评分卡模型分类 A卡&#xff…

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 2月10日,星期六

每天一分钟&#xff0c;知晓天下事&#xff01; 2024年2月10日 星期六 农历正月初一 春节 1、 国务院&#xff1a;到2025年&#xff0c;初步建成覆盖各领域、各环节的废弃物循环利用体系。 2、 国家移民管理局&#xff1a;部分国家人员可以用更多事由免签入境海南。 3、 市场…

华为配置无线监测环境与反制

华为配置无线环境检测与反制&#xff08;WIDS/WIPS&#xff09; 组网图形 图1 配置非法设备检测和反制示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 某企业分支机构为了保证工作人员可以随时随地访问公司网络资源&#xff0c;部署WLAN基…

Spring 如何配置 bean (XML 方式)

请直接看原文:Spring 如何配置 bean (XML 方式)_spring 在哪配置bean 文件-CSDN博客 -------------------------------------------------------------------------------------------------------------------------------- Java Bean 如何配置配置到 spring 容器中 基于 XM…

css的布局(BFC)

一、css中常规的定位方案 1、普通流 元素按照其在HTML中的先后位置自上而下布局。 行内元素水平排列&#xff0c;当行被占满后换行&#xff1b;块级元素则会被渲染为完整的一行。 所有元素默认都是普通流定位。 2、浮动 元素首先按照普通流的位置出现&#xff0c; 然后根据浮动…

【ETOJ P1046】斐波那契数列 题解(数学+动态规划)

题目描述 给定一个整数 T T T&#xff0c;表示样例数。 对于每个样例&#xff0c;给定一个整数 n n n&#xff0c;求斐波那契数列的第 n n n 项。 斐波那契数列定义为 f ( 1 ) f ( 2 ) 1 f(1) f(2) 1 f(1)f(2)1&#xff0c; f ( n ) f ( n − 1 ) f ( n − 2 ) f(…

跟着cherno手搓游戏引擎【23】项目维护、2D引擎之前的一些准备

项目维护&#xff1a; 修改文件结构&#xff1a; 头文件自己改改就好了 创建2DRendererLayer&#xff1a; Sandbox2D.h: #pragma once #include "YOTO.h" class Sandbox2D :public YOTO::Layer {public:Sandbox2D();virtual ~Sandbox2D() default;virtual void O…

图神经网络与图表示学习: 从基础概念到前沿技术

目录 前言1 图的形式化定义和类型1.1 图的形式化定义1.2 图的类型 2 图表示学习2.1 DeepWalk: 融合语义相似性与图结构2.2 Node2Vec: 灵活调整随机游走策略2.3 LINE: 一阶与二阶邻接建模2.4 NetMF: 矩阵分解的可扩展图表示学习2.5 Metapath2Vec: 异构图的全面捕捉 3 图神经网络…

mysql-面试题

一、SQL语句 1、SQL语句的分类 DQL:数据查询语言—selectDML:数据操作语言—insert/update/deleteDDL:数据定义语言—create/drop/alterDCL:数据控制语言—start transaction/commit/rollback2、Sql语句的执行顺序 SQL 语句的执行顺序与编写顺序并不相同FROM、ON、JOIN、W…