TensorRT学习(1):通过pth生成wts文件

1. pth文件简介

pth文件是pytorch保存模型的一种方式,该文件只保存模型的参数。模型参数实际上一个字典类型,通过key-value的形式存储。

2. wts文件格式示例(来自wang-xinyu大佬的github

第一行代表该文件有多少行,不包括它本身。之后每行格式为:

  [weight name] [value count = N] [value1] [value2], ..., [valueN]
10
conv1.weight 150 be40ee1b bd20bab8 bdc4bc53 .......
conv1.bias 6 bd327058 .......
conv2.weight 2400 3c6f2220 3c693090 ......
conv2.bias 16 bd183967 bcb1ac8a .......
fc1.weight 48000 3c162c20 bd25196a ......
fc1.bias 120 3d3c3d49 bc64b948 ......
fc2.weight 10080 bce095a4 3d33b9dc ......
fc2.bias 84 bc71eaa0 3d9b276c .......
fc3.weight 840 3c252870 3d855351 .......
fc3.bias 10 bdbe4bb8 3b119ee0 ......

3. pth转wts

完整代码如下:

 import torchimport structnet = torch.load('pth_path')    # 加载pth文件,pth_path为pth文件的路径、#for k in net.keys():            # 打印net的key#   print(k)     # 我的为epoch、instance_acc、class_acc、model_state_dict、optimizer_state_dict# 显然,模型参数保存在 net["model_state_dict"],有时候命名会不一样,所以应打印net的key确定一下model_state_dict = net["model_state_dict"]f = open("pointNet_sem.wts", 'w')  # 自己命名wts文件f.write("{}\n".format(len(model_state_dict.keys())))  # 保存所有keys的数量for k, v in model_state_dict.items():vr = v.reshape(-1).cpu().numpy()    # 权重参数展开成1维f.write("{} {}".format(k, len(vr)))  # 保存每一层名称和参数长度for vv in vr:f.write(" ")f.write(struct.pack(">f", float(vv)).hex())  # 使用struct把权重封装成字符串f.write("\n")

TensorRT学习(1):通过pth生成wts文件相关推荐

  1. caffe的python接口学习(2)生成solver文件

    caffe在训练的时候,需要一些参数设置,我们一般将这些参数设置在一个叫solver.prototxt的文件里面 有一些参数需要计算的,也不是乱设置. 假设我们有50000个训练样本,batch_si ...

  2. YOLOv5环境搭建、训练流程及tensorrt转换生成plan文件

    一.背景 github官网yolov5,代码什么的从这个网站下 二.环境搭建 有两种环境搭建方式,一是用conda搭个虚拟环境,然后安装所有需要的库跟依赖等:二是用docker容器,下载英伟达的pyt ...

  3. 生成PDF文件方案--学习中

    PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段"暴力"破解 ...

  4. FPGA 学习笔记:Vivado 生成的 Bitstream bit 文件 超大的解决方法

    前言 最近学习FPGA,使用Vivado,照着开发板例程,写了个流水灯的Verilog程序,配置好引脚约束后,下载到开发板,发现下载的速度有点慢,我一查看 生成的 bit文件,发现竟然接近11MB. ...

  5. 第五篇:基于深度学习的人脸特征点检测 - 生成TFRecord文件

    在上一篇博文中,我们已经获取到了所有样本的面部区域,并且对面部区域的有效性进行了验证.当使用TensorFlow进行神经网络训练时,涉及到的大量IO操作会成为训练速度的瓶颈.为了加快训练的速度,方便后 ...

  6. 【安卓学习之第三方库】 ZlwAudioRecorder学习:内部流程(含aar文件生成)

    █ [安卓学习之第三方库] ZlwAudioRecorder学习:内部流程(含aar文件生成) █ 系列文章目录 提示:这里是收集了安卓学习之常见问题的相关文章 [安卓学习之MP3] MP3读取格式 ...

  7. linux opkg安装的文件到哪里了,通过openpctv简单学习opkg安装与生成包的一些过程...

    OpenPCTV - 让你的HTPC拥有更全面的电视功能 通过linuxtoy了解到openPCTV是使用opkg打包的 获得源代码:git clone git://git.code.sf.net/p ...

  8. Android 个人学习笔记- 导入android项目,无法自动生成R文件的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 从网上下载源码导进eclipse后,发现该有的jar包都有以后,就是无法在gen目录下生成R文件. 假如你也遇到这样的问题,你 ...

  9. gsoap 学习 1-自己定义接口生成头文件

    接口头文件的格式在向导中没有看到明确的说明性的内容,但通过看开发包中示例程序中头文件定义和通过wsdl生成的头文件的内容,可以发现,头文件中都会出现以下几行信息  //gsoap ns service ...

  10. 深度学习制作数据集的部分代码实现(解压zip、生成json文件)

    1.当数据集是压缩包时,需要解压成图片文件 import zipfile def unzip_data(src_path,target_path):'''解压原始数据集,将src_path路径下的zi ...

最新文章

  1. 北京大学年度人物揭榜!发论文、搞科研,看“学神打架”!
  2. Linux下安装Python-3.3.2【转】
  3. 云笔记项目-补充JS面向对象编程基础知识
  4. 高精度运算模板(大数模板)
  5. 【Eclipse】eclipse在线安装反编译插件
  6. QUIC技术创新 让视频和图片分发再提速
  7. Android doc|Getting Started|部分 --转载 保存数据
  8. eclipse插件之——PropertiesEditor
  9. as的Enter_Frame与Timer
  10. 俊杰隐藏文件程序源码分享 C#
  11. HW护网即将开始4.6
  12. segy地震数据的读取python_SEGY地震数据格式分析与读写
  13. 一句话说明sync, fsync, fdatasync的区别
  14. 抖音私聊不封号技术,教你怎么避免踩雷?
  15. 计算机博士复试英语自我介绍,博士复试自我介绍中英文
  16. vue组件开发之仿CSDN发布博客时面包屑标签和checkbox选中效果
  17. JavaScript 网页购物车项目
  18. Linux-Samba文件共享服务
  19. JSfunction参数设计的初衷
  20. 完美更新安装TensorFlow-gpu

热门文章

  1. c语言 析构函数,C++析构函数详解
  2. 尚硅谷周阳老师 - Docker课程学习
  3. 苹果手机上linux编程,iOS真机调试 - iOS学习笔记_Linux编程_Linux公社-Linux系统门户网站...
  4. 思科实验4.4.1.2-Packet Tracer - 综合技能练习
  5. 川大计算机学梡分数线,2017四川大学历年录取分数线
  6. 怎么在word和python中输入对号
  7. 23种设计模式:(一)创建者模型
  8. html语言判断水仙花数,水仙花数判断讲解
  9. 路由器连接猫服务器未响应,路由器连接猫不能上网怎么办
  10. 外贸常用术语_外贸常用术语总结.doc