PyTorch YOLOV3 模型转换问题
工程代码:https://github.com/eriklindernoren/PyTorch-YOLOv3
第一步:下载Darknet 版的yolov3.weights
第二部:使用以上工程代码加载模型:model.load_darknet_weights() 并保存为pytorch模型格式yolov3.pth:
torch.save(model.state_dict(), pytorch_model)
第三步:用 torch.jit.trace convert 模型为 .pt 格式。 这里注意:参数check_trace=False,不然会报错
traced_script_module = torch.jit.trace(model, example,check_trace=False)
参考:https://github.com/pytorch/pytorch/issues/23993
注意:torch.jit.trace()不支持控制流语句,需将models.py 中 if targets is None 以下语句注释掉,增加
return output,0 因为作为推断,所以注释掉的语句不影响。
import numpy as np import torch # import torchsnooper from models import Darknet device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # with torch.jit.optimized_execution(True):def save_pytorch_model(darknet_model,pytorch_model,config_file):model = Darknet(config_file).to(device)model.load_darknet_weights(darknet_model)torch.save(model.state_dict(), pytorch_model)print('pytorch model saved!')def convert_pytorch_model_to_libtorch(config_file,pytorch_model,libtorch_model):model = Darknet(config_file).to(device)model.load_state_dict(torch.load(pytorch_model))model.eval()example = torch.rand(1,3,416,416).cuda()with torch.jit.optimized_execution(True):print('pp')# example 报错 Expected type 'tuple', got 'Tensor' instead ,可能是input没有放cuda上traced_script_module = torch.jit.trace(model, example,check_trace=False)# save the converted modelprint('oo')traced_script_module.save(libtorch_model)output = traced_script_module(torch.rand(1,3,416,416).cuda())print(output)print('trace model saved!')
PyTorch YOLOV3 模型转换问题相关推荐
- 瑞芯微rv1126+yolov3模型转换
瑞芯微rv1126+yolov3模型转换 文章目录 瑞芯微rv1126+yolov3模型转换 环境准备 一.加载运行docker 1.安装 Docker 2. 加载镜像 二.转换步骤 1.下载yolo ...
- 【1】AI模型转换综述
前言 当用户基于各种原因学习并使用了一种框架的时候,常常会发现应用或者再训练的场景改变了,比如用户用 Caffe 训练好了一个图像识别的模型,但是生产环境是使用 TensorFlow 做预测.再比如某 ...
- yolo模型转换:pytorch -> onnx -> caffe
第一步:pytorch转onnx(pytorch版,yolov3-9.0开始提供脚本export.py) (1)设置onnx算子版本(按需) 修改代码: torch.onnx.export(model ...
- Pytorch版本YOLOv3模型转Darknet weights模型然后转caffemodel再转wk模型在nnie上面推理
Pytorch版本YOLOv3模型转darknet weights模型然后转caffemodel再转wk模型在nnie上面推理 文章目录 Pytorch版本YOLOv3模型转darknet weigh ...
- 使用Google云平台实战基于PyTorch的yolo-v3模型
对于计算机视觉爱好者来说,YOLO (You Only Look Once)是一个非常流行的实时目标检测算法,因为它非常快,同时性能非常好. 在本文中,我将共享一个视频处理的代码,以获取视频中每个对象 ...
- OpenCV转换PyTorch分类模型并使用OpenCV C ++启动
OpenCV转换PyTorch分类模型并使用OpenCV C ++启动 转换PyTorch分类模型并使用OpenCV C ++启动 目标 简介 要求 实践 模型转换管道 推理管道 转换PyTorch分 ...
- OpenCV转换PyTorch分类模型并使用OpenCV Python启动
OpenCV转换PyTorch分类模型并使用OpenCV Python启动 转换PyTorch分类模型并使用OpenCV Python启动 目标 介绍 要求 实践 模型转换管道 模型评估 评估模式 测 ...
- linux caffe生成的模型,深度学习之pytorch转caffe转ncnn模型转换(三)
搭建caffe平台: 先在Linux系统下搭建caffe环境,安装依赖包: sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy- ...
- 【地平线开发板 模型转换】将pytorch生成的onnx模型转换成.bin模型
文章目录 1 获取onnx模型 2 启动docker容器 3 onnx模型检查 3.1 为什么要检查? 3.2 如何操作 4 图像数据预处理 4.1 一些问题的思考 4.2 图片挑选与放置 4.2 使 ...
- pytorch模型转ONNX转TensorRT,模型转换和推理部署
一.pth模型转ONNX import os import sys import torch import numpy as npfrom feat.model import ResNet # 导入自 ...
最新文章
- linux下find(文件查找)命令的用法总结
- Windows 2008 R2_NLB网络负载均衡(图文详解)(转)
- 06Prism WPF 入门实战 - Log控件库
- GCD and LCM Aizu - 0005(辗转相除)+GCD LCM Inverse POJ - 2429(java或【Miller Rabin素数測试】+【Pollar Rho整数分解】)
- js中的四舍五入函数
- perl数组硬引用_Perl 继续前行,Perl 7 将是下一代(硬核老王点评版)
- Eclipse集成svn后出现Failed to load JavaHL Library的解决办法
- android 中间凹背景_Android实现边缘凹凸的View
- mysql 时间小于_删库不必跑路,自己动手MySQL数据恢复,真香~~
- 支付业务与技术架构学习总结(3)——账务系统
- css3特效-传送带示例
- 职业经理人-授权后才是管理的开始
- 使用npm uninstall卸载express无效
- ylbtech-Unitity-CS:AnonymousDelegates
- java地址值是几进制_Java三种进制的数值常量操作代码
- php libiconv close_PHP出现undefined reference to `libiconv' 错误的解决方法
- 程序员必备的画图工具汇总
- 信息技术在园林绿化技师试题测试中的应用
- 使用Nuxt.js框架开发(SSR)服务端渲染项目
- 优秀互联网面试题总结