当前位置:网站首页>【TFLite, ONNX, CoreML, TensorRT Export】
【TFLite, ONNX, CoreML, TensorRT Export】
2022-07-05 11:34:00 【网络星空(luoc)】
文章目录
This guide explains how to export a trained YOLOv5 model from PyTorch to ONNX and TorchScript formats. UPDATED 18 May 2022.
Before You Start
Clone repo and install requirements.txt in a Python>=3.7.0 environment, including PyTorch>=1.7. Models and datasets download automatically from the latest YOLOv5 release.
git clone https://github.com/ultralytics/yolov5 # clone
cd yolov5
pip install -r requirements.txt # install
For TensorRT export example (requires GPU) see our Colab notebook appendix section. Open In Colab
Formats
YOLOv5 inference is officially supported in 11 formats:
ProTip: TensorRT may be up to 2-5X faster than PyTorch on GPU
ProTip: ONNX and OpenVINO may be up to 2-3X faster than PyTorch on CPU
Export a Trained YOLOv5 Model
This command exports a pretrained YOLOv5s model to TorchScript and ONNX formats. yolov5s.pt
is the ‘small’ model, the second smallest model available. Other options are yolov5n.p
t, yolov5m.p
t, yolov5l.pt
and yolov5x.pt
, along with their P6 counterparts i.e. yolov5s6.pt
or you own custom training checkpoint i.e. runs/exp/weights/best.pt
. For details on all available models please see our README table.
python path/to/export.py --weights yolov5s.pt --include torchscript onnx
Output:
export: data=data/coco128.yaml, weights=yolov5s.pt, imgsz=[640, 640], batch_size=1, device=cpu, half=False, inplace=False, train=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=12, verbose=False, workspace=4, nms=False, agnostic_nms=False, topk_per_class=100, topk_all=100, iou_thres=0.45, conf_thres=0.25, include=['torchscript', 'onnx']
YOLOv5 v6.0-241-gb17c125 torch 1.10.0 CPU
Fusing layers...
Model Summary: 213 layers, 7225885 parameters, 0 gradients
PyTorch: starting from yolov5s.pt (14.7 MB)
TorchScript: starting export with torch 1.10.0...
TorchScript: export success, saved as yolov5s.torchscript (29.4 MB)
ONNX: starting export with onnx 1.10.2...
ONNX: export success, saved as yolov5s.onnx (29.3 MB)
Export complete (7.63s)
Results saved to /Users/glennjocher/PycharmProjects/yolov5
Detect: python detect.py --weights yolov5s.onnx
PyTorch Hub: model = torch.hub.load('ultralytics/yolov5', 'custom', 'yolov5s.onnx')
Validate: python val.py --weights yolov5s.onnx
Visualize: https://netron.app
The 3 exported models will be saved alongside the original PyTorch model:
Netron Viewer is recommended for visualizing exported models:
Example Usage of exported models
export.py will show Usage examples for the last export format indicated. For example for ONNX:
detect.py
runs inference on exported models:
python path/to/detect.py --weights yolov5s.pt # PyTorch
yolov5s.torchscript # TorchScript
yolov5s.onnx # ONNX Runtime or OpenCV DNN with --dnn
yolov5s.xml # OpenVINO
yolov5s.engine # TensorRT
yolov5s.mlmodel # CoreML (macOS only)
yolov5s_saved_model # TensorFlow SavedModel
yolov5s.pb # TensorFlow GraphDef
yolov5s.tflite # TensorFlow Lite
yolov5s_edgetpu.tflite # TensorFlow Edge TPU
val.py
runs validation on exported models:
python path/to/val.py --weights yolov5s.pt # PyTorch
yolov5s.torchscript # TorchScript
yolov5s.onnx # ONNX Runtime or OpenCV DNN with --dnn
yolov5s.xml # OpenVINO
yolov5s.engine # TensorRT
yolov5s.mlmodel # CoreML (macOS Only)
yolov5s_saved_model # TensorFlow SavedModel
yolov5s.pb # TensorFlow GraphDef
yolov5s.tflite # TensorFlow Lite
yolov5s_edgetpu.tflite # TensorFlow Edge TPU
OpenCV DNN C++
Examples of YOLOv5 OpenCV DNN C++ inference on exported ONNX models can be found at
https://github.com/Hexmagic/ONNX-yolov5/blob/master/src/test.cpp
https://github.com/doleron/yolov5-opencv-cpp-python
Environments
YOLOv5 may be run in any of the following up-to-date verified environments (with all dependencies including CUDA/CUDNN, Python and PyTorch preinstalled):
Google Colab and Kaggle notebooks with free GPU: Open In Colab Open In Kaggle
Google Cloud Deep Learning VM. See GCP Quickstart Guide
Amazon Deep Learning AMI. See AWS Quickstart Guide
Docker Image. See Docker Quickstart Guide Docker Pulls
Status
If this badge is green, all YOLOv5 GitHub Actions Continuous Integration (CI) tests are currently passing. CI tests verify correct operation of YOLOv5 training (train.py), validation (val.py), inference (detect.py) and export (export.py) on MacOS, Windows, and Ubuntu every 24 hours and on every commit.
边栏推荐
- C#实现WinForm DataGridView控件支持叠加数据绑定
- 【Office】Excel中IF函数的8种用法
- redis 集群模式原理
- 紫光展锐全球首个5G R17 IoT NTN卫星物联网上星实测完成
- Risc-v-qemu-virt in FreeRTOS_ Scheduling opportunity of GCC
- AutoCAD -- mask command, how to use CAD to locally enlarge drawings
- 《增长黑客》阅读笔记
- shell脚本文件遍历 str转数组 字符串拼接
- [crawler] Charles unknown error
- How can edge computing be combined with the Internet of things?
猜你喜欢
11. (map data section) how to download and use OSM data
COMSOL--建立几何模型---二维图形的建立
1个插件搞定网页中的广告
12. (map data) cesium city building map
XML parsing
如何让你的产品越贵越好卖
iTOP-3568开发板NPU使用安装RKNN Toolkit Lite2
COMSOL -- establishment of geometric model -- establishment of two-dimensional graphics
Basics - rest style development
《增长黑客》阅读笔记
随机推荐
How to understand super browser? What scenarios can it be used in? What brands are there?
pytorch-softmax回归
简单解决redis cluster中从节点读取不了数据(error) MOVED
AUTOCAD——遮罩命令、如何使用CAD对图纸进行局部放大
Evolution of multi-objective sorting model for classified tab commodity flow
COMSOL -- 3D casual painting -- sweeping
Guys, I tested three threads to write to three MySQL tables at the same time. Each thread writes 100000 pieces of data respectively, using F
pytorch-权重衰退(weight decay)和丢弃法(dropout)
Web API configuration custom route
解决grpc连接问题Dial成功状态为TransientFailure
Idea set the number of open file windows
7.2 daily study 4
871. Minimum Number of Refueling Stops
以交互方式安装ESXi 6.0
Summary of thread and thread synchronization under window
Install esxi 6.0 interactively
IPv6与IPv4的区别 网信办等三部推进IPv6规模部署
pytorch-线性回归
15 methods in "understand series after reading" teach you to play with strings
无密码身份验证如何保障用户隐私安全?