当前位置: 首页 > news >正文

转换 pytorch 格式模型为 caffe格式模型 pth2caffemodel

基于 GitHub xxradon/PytorchToCaffe 源码,修改 example\resnet_pytorch_2_caffe.py 如下

import os
import sys
sys.path.insert(0, '.')import torch
from torch.autograd import Variable
from torchvision.models import resnet
import pytorch_to_caffe"""resnet models in pytorch format can be downloaded from‘resnet18’: ‘https://download.pytorch.org/models/resnet18-5c106cde.pth’,‘resnet34’: ‘https://download.pytorch.org/models/resnet34-333f7ec4.pth’,‘resnet50’: ‘https://download.pytorch.org/models/resnet50-19c8e357.pth’,‘resnet101’: ‘https://download.pytorch.org/models/resnet101-5d3b4d8f.pth’,‘resnet152’: ‘https://download.pytorch.org/models/resnet152-b121ed2d.pth’,"""def show_usage(cmd):print( "Usage:" )print(   "    ", cmd, " <pytorch-model-name>  <pytorch-model-filename.pth>" )def main(cmd, argv):if( len(argv) < 2 ):print( "Error! Parameter is not enough." )show_usage( cmd )exit( 1 )model_name = argv[0]input_file = argv[1]pure_path = os.path.splitext( input_file )file_name = pure_path[0]print( " model  : ",  model_name )print( " input  : ",  input_file )print( " output : ",  '{}.prototxt'.format(file_name) )print( "          ",  '{}.caffemodel'.format(file_name) )input=torch.ones([1,3,224,224])match model_name:case "resnet18":resnet_x = resnet.resnet18()case "resnet34":resnet_x = resnet.resnet34()case "resnet50":resnet_x = resnet.resnet50()case "resnet101":resnet_x = resnet.resnet101()case "resnet152":resnet_x = resnet.resnet152()case _:print( "Error! Unknown model name : ",  model_name )show_usage( cmd )exit( 2 )if( False == os.path.isfile(input_file) ):print( "Error! Cannot find input file : ", input_file )show_usage( cmd )exit( 3 )checkpoint = torch.load(input_file)resnet_x.load_state_dict(checkpoint)resnet_x.eval()pytorch_to_caffe.trans_net(resnet_x,input,model_name)pytorch_to_caffe.save_prototxt('{}.prototxt'.format(file_name))pytorch_to_caffe.save_caffemodel('{}.caffemodel'.format(file_name))if __name__ == "__main__":main(sys.argv[0], sys.argv[1:])

脚本依赖pytorch,安装之。

pip install torch

运行中遇到 protobuf 版本过高问题,降级处理

pip install -U protobuf==3.20 

下载 resnet model文件后,执行脚本

python example\resnet_pytorch_2_caffe.py  resnet152  resnet152-b121ed2d.pth

http://www.lryc.cn/news/257799.html

相关文章:

  • 【S32DS RTD实战】-1.3-S32K3工程生成S19,BIN,Hex文件,以及Post-build steps的妙用
  • Java工程找不到javax.xml.bind.annotation包
  • 【C语言】网络字节序和主机字节序
  • 极简模式,助力宏观数据监控
  • 智能优化算法应用:基于花授粉算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • IT圈的“鄙视链”大揭秘:从Java到Go,编程语言之战!
  • 【C++】算法库(复制操作、交换操作、变换操作)
  • CV计算机视觉每日开源代码Paper with code速览-2023.12.6
  • 面试经典150题(1-2)
  • MySQL使用教程
  • 微服务学习:Ribbon实现客户端负载均衡,将请求分发到多个服务提供者
  • 孩子还是有一颗网安梦——Bandit通关教程:Level0
  • 读excel文件,借助openpyxl工具
  • ubuntu16.04升级openssl
  • 【力扣100】56.合并区间
  • 重磅!2023中国高校计算机大赛-人工智能创意赛结果出炉
  • [Linux] 用LNMP网站框架搭建论坛
  • 记录 | 使用samba将ubuntu文件夹映射到windows实现共享文件夹
  • leetcode 股票DP系列 总结篇
  • 深入理解Java虚拟机---对象的创建和内存异常溢出
  • windows MYSQL解决中文乱码问题
  • EasyRecovery2024免费永久版手机数据恢复软件
  • 2023/12/11 作业
  • 【11】Qt Designer
  • 【算法优选】 动态规划之路径问题——贰
  • 从视频中截取指定帧图片
  • 2023最新vue安装(npm,yarn,国内镜像,vue安装,vue导包)全套教程2023年12月最新
  • 性能测试基础
  • 算法与数据结构--最短路径Dijkstra算法
  • ASP.NET Core 8 在 Windows 上各种部署模型的性能测试