从Pytorch模型pth文件中读取参数成numpy矩阵的操作


Posted in Python onMarch 04, 2021

目的:

把训练好的pth模型参数提取出来,然后用其他方式部署到边缘设备。

Pytorch给了很方便的读取参数接口:

nn.Module.parameters()

直接看demo:

from torchvision.models.alexnet import alexnet 
model = alexnet(pretrained=True).eval().cuda()
parameters = model.parameters()
for p in parameters:
  numpy_para = p.detach().cpu().numpy()
  print(type(numpy_para))
  print(numpy_para.shape)

上面得到的numpy_para就是numpy参数了~

Note:

model.parameters()是以一个生成器的形式迭代返回每一层的参数。所以用for循环读取到各层的参数,循环次数就表示层数。

而每一层的参数都是torch.nn.parameter.Parameter类型,是Tensor的子类,所以直接用tensor转numpy(即p.detach().cpu().numpy())的方法就可以直接转成numpy矩阵。

方便又好用,爆赞~

补充:pytorch训练好的.pth模型转换为.pt

将python训练好的.pth文件转为.pt

import torch
import torchvision
from unet import UNet
model = UNet(3, 2)#自己定义的网络模型
model.load_state_dict(torch.load("best_weights.pth"))#保存的训练模型
model.eval()#切换到eval()
example = torch.rand(1, 3, 320, 480)#生成一个随机输入维度的输入
traced_script_module = torch.jit.trace(model, example)
traced_script_module.save("model.pt")

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
python中返回矩阵的行列方法
Apr 04 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
详解Python中的测试工具
Jun 09 Python
Python列表与元组的异同详解
Jul 02 Python
python并发爬虫实用工具tomorrow实用解析
Sep 25 Python
python实现大量图片重命名
Mar 23 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
python基础之文件操作
Oct 24 Python
Python基本的内置数据类型及使用方法
Apr 13 Python
python 如何用urllib与服务端交互(发送和接收数据)
Mar 04 #Python
python 求两个向量的顺时针夹角操作
Mar 04 #Python
python 制作磁力搜索工具
Mar 04 #Python
python抢购软件/插件/脚本附完整源码
Mar 04 #Python
Python 求向量的余弦值操作
Mar 04 #Python
django使用多个数据库的方法实例
Mar 04 #Python
Python使用paramiko连接远程服务器执行Shell命令的实现
Mar 04 #Python
You might like
php连接mssql数据库的几种方法
2013/02/21 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
FleaPHP框架数据库查询条件($conditions)写法总结
2016/03/19 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
js实现数组冒泡排序、快速排序原理
2016/03/08 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
用JS实现根据当前时间随机生成流水号或者订单号
2018/05/31 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
python使用Berkeley DB数据库实例
2014/09/26 Python
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
COSETTE官网:奢华,每天
2020/03/22 全球购物
个人委托书怎么写
2014/04/04 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
教师节学生演讲稿
2014/09/03 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
详解MySQL事务的隔离级别与MVCC
2021/04/22 MySQL
详解Python requests模块
2021/06/21 Python
教你一步步实现一个简易promise
2021/11/02 Javascript
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers