【pytorch】pytorch模型保存技巧

2023-10-26

Pytorch会把模型相关信息保存为一个字典结构的数据,以用于继续训练或者推理。

1 保存与加载模型参数

        这是最常见的模型保存与加载方式,保存方式如下:

state = model.state_dict()
torch.save(state, ‘xxx.pth’)

        模型参数加载之前需要先定义模型的网络结构,假设已定义好的网络结构为model。那么模型参数加载方式如下:

checkpoint = torch.load('xxx.pth', map_location='cpu')
model.load_state_dict(checkpoint)
model.cuda()
model.train()/model.eval()

2 保存与加载训练参数

        除了模型参数之外,torch还可以保存其他训练相关参数,例如学习率、优化器信息等,保存方式如下:

state = {'checkpoint':model.state_dict(), 'optimizer':optimizer.state_dict(), 'epoch':epoch_num}
torch.save(state, ‘xxx.pth’)

        模型参数加载之前需要先定义模型的网络结构,假设已定义好的网络结构为model。那么模型参数加载方式如下:

checkpoint = torch.load('xxx.pth', map_location='cpu')
model.load_state_dict(checkpoint[‘checkpoint’])
optimizer.load_state_dict(checkpoint['optimizer'])
start_epoch = checkpoint['epoch']
model.cuda()
model.train()/model.eval()

3 保存模型结构与参数

        上述方法在加载前必须先定义模型的网络结构,为了不需要单独加载模型的网络结构可以把整个模型保存起来。保存方式如下:

torch.save(model, ‘xxx.pth’)

        模型加载时不需要先定义网络结构,直接加载整个网络即可,加载方式如下:

model = torch.load('xxx.pth', map_location='cpu')
model.cuda()
model.train()/model.eval()

        同样地,也可以类似2中做法把其他参数保存进来。

4 模型重新保存

        保存模型通常是为了继续训练,或者是为了算法推理。特别是在算法推理过程中,损失函数相关定义是不需要的。特别是一些特别的损失函数,需要依赖编译的环境,但这在模型推理时又不需要。那么,采用3中的保存方式通常会提醒模型模块的缺失。做法是:

1、先在模型网路定义程序中注释掉不需要的模块;
2、定义模型网络结构model,用1或2中的方式加载模型;
3、用3中的方式再次保存加载后的模型,这样之后就可以重复用3中的方式加载保存后的模型了。

python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_3d点云 python从三维基础知识到深度学习,将按照以下目录持续进行更新。更新完成的部分可以在三维点云专栏中查看。https://blog.csdn.net/suiyingy/category_11740467.htmlhttps://blog.csdn.net/suiyingy/category_11740467.html1、点云格式介绍(已完成)常见点云存储方式有pcd、ply、bin、txt文件。open3d读写pcd和plhttps://blog.csdn.net/suiyingy/article/details/124017716

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【pytorch】pytorch模型保存技巧 的相关文章

随机推荐

  • 网页上ajax异步加载数据,网页的异步请求(Ajax)

    JS原生Ajax操作 XMLHttpRequest GET请求 var xmld new XMLHttpRequest xmld open GET wan php dd1 dong11 dd2 dong22 打开页面 xmld setReq
  • 如何成为优秀的管理者?(摘自《代码之道》第9章)

    婚礼 旅行和管理者之间有什么共同之处吗 跟任何一个成年人谈论这些话题 你肯定会听到一个可怕的故事 在婚礼上 那是关于喝醉的客人 糟糕的天气或者不合时宜的失言 在旅行过程中 那是关于丢失的行李 混乱的乘客或者慌乱的转机 至于管理者 那是关于你
  • Redis缓存击穿、雪崩、穿透!(超详细)

    缓存的击穿 穿透和雪崩应该是再熟悉不过的词了 也是面试常问的高频试题 不过 对于这三大缓存的问题 有很多人背过了解决方案 却少有人能把思路给理清的 而且 网络上仍然充斥着 大量不太靠谱的解决方案 难免误人子弟 我的这篇文章 则会对这三大缓存
  • mobaxterm的linux安装教程,MobaXterm详尽使用教程系列一

    常用SSH客户端介绍 SSH 为 Secure Shell 的简写 是目前较可靠 专为远程登入会话和其他网路服务提供安全性的合同 利用 SSH 协议可以有效避免远程管理过程中的信息泄漏问题 我们做估算的人 每天都须要与linux服务器打交道
  • html元素data属性设置变量,在VUE style中运用data中的变量的要领详解_WEB前端开发...

    近来项目中的大众组件 在复用的时刻 针对差别的场景 须要不停变动CSS里款式的值 而且已经有了全局的大众组件款式了 假如用vue传统的动态绑定class和style的体式格局去修正款式 文末会提到 须要分外写许多变量和模块class 那假如
  • k8s基本问题排查

    排查pod故障 查看pod是否正常 kubectl get pods n fronted 常见pod排查命令 kubectl logs
  • Docker

    目录 1 离线安装 1 1 下载Docker离线包 1 2 下载离线安装工具 1 3 安装 1 4 镜像加速 1 4 1 下面命令直接生成文件 daemon json 1 4 2 重新加载docker配置 1 4 3 重启docker服务
  • Android Animation.setAnimationListener()失效问题

    Android执行动画 使用Animation情景如下 Animation animation new Animation 如果需要监听动画执行 animation setAnimationListener 需要在 view startAn
  • Conda错误:Collecting package metadata (current_repodata.json): failed

    conda新安装设置清华源后发现并没有使用 且会出现错误 Collecting package metadata current repodata json failed 换了科大源也没成功 考虑可能是默认源的问题 删除 condarc文件
  • TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute

    1 IMCP协议介绍 前面讲到了 IP协议并不是一个可靠的协议 它不保证数据被送达 那么 自然的 保证数据送达的工作应该由其他的模块来完成 其中一个重要的模块就是ICMP 网络控制报文 协议 当传送IP数据包发生错误 比如主机不可达 路由不
  • STM32F103ZET6【HAL函开发】STM32CUBEMX------1.GPIO输出-点亮led灯

    一 硬件介绍 正点原子战舰开发板 主控芯片STM32F103ZET6 两个LED分别连接到单片机的PB5和PE5 二 STM32CUBEMX基础配置 2 1 晶振配置 如果你的板子上外部高速晶振8M和外部低速晶振32 768K都有的话 那么
  • Java中如何自定义数组

    Java中如何自定义数组 数组是一种非常常见的数据结构 在Java中也是一个非常重要的概念 在Java中 数组的定义和使用非常简单 但是如果我们想要自定义数组 那么可能需要一些额外的操作 Java中如何自定义数组 在Java中 数组是一种简
  • 华为OD机试 - 分苹果(Java)

    题目描述 A B两个人把苹果分为两堆 A希望按照他的计算规则等分苹果 他的计算规则是按照二进制加法计算 并且不计算进位 12 5 9 1100 0101 9 B的计算规则是十进制加法 包括正常进位 B希望在满足A的情况下获取苹果重量最多 输
  • 【转载】区块链技术原理、应用领域及挑战

    区块链技术原理 应用领域及挑战 李董 魏进武 中国联合网络通信有限公司研究院 北京 100032 引用本文 李董 魏进武 区块链技术原理 应用领域及挑战 电信科学 J 2016 32 12 20 26 doi 10 11959 j issn
  • 小米手机解BL锁教程

    1 找到设置 找到我的设备 2 点击全部参数 多点几下miui版本 直到弹出开发者模式提醒 3 返回 找到更多设置 4 找到开发者选项
  • Linux设备上时间不准确?使用chrony服务配置时间服务器实现Linux时间同步以及实现主从设备时间同步

    本文基于Linux上CentOS 7版本配合chrony 需要使用yum自行下载 进行演示 目录 一 计算机设备上的两种时间 1 硬件时间 2 系统时间 二 配置同步时间服务器 1 安装服务 2 配置服务 三 搭建主从时间服务器 1 服务器
  • 阿里云提示ECS服务器存在漏洞处理方法

    1 阿里云提供生成修复命令 但是这个只提供给企业版 即收费的 2 自己手动修复的话 采用软件升级一般都可以解决 除了提示带kernel的高危漏洞的 其他的不需要重启实例即可修复 有kernel的需要更新完成重启实例 这里可以先把 漏洞名称
  • 2021-04-08 使用Eclipse进行Web前端开发

    使用Eclipse进行Web前端开发 前言 本机为微软Surface pro4 为64位 所用操作系统为Windos 10 使用的Java版本为1 8 0 151 使用的JDK版本为JDK8 注意事项 1 Eclipse安装插件的时候一定要
  • 【mac】Mac 安装 RabbitMQ

    文章目录 1 概述 2 安装brew 3 安装 4 安装RabiitMQ的可视化监控插件 5 配置环境变量 6 后台启动 rabbitMQ 7 创建rabbitmq账号 8 给账号配置角色 1 概述 学习spring cloud 的时候 因
  • 【pytorch】pytorch模型保存技巧

    Pytorch会把模型相关信息保存为一个字典结构的数据 以用于继续训练或者推理 1 保存与加载模型参数 这是最常见的模型保存与加载方式 保存方式如下 state model state dict torch save state xxx p