From 6d08de2a42315a73ae5bf52882d7d4464c1f432e Mon Sep 17 00:00:00 2001 From: duoduo Date: Thu, 7 Jul 2022 23:27:10 +0800 Subject: [PATCH] add onnx-sim handle --- example/onnx-runtime/FastestDet.onnx | Bin 991702 -> 998169 bytes requirements.txt | 6 +++++- test.py | 14 +++++++++++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/example/onnx-runtime/FastestDet.onnx b/example/onnx-runtime/FastestDet.onnx index 0666a1209a053d50c98d94652d102f71754f630b..cce857727cfa14962cf87aab2c958530e3ffcdb1 100644 GIT binary patch delta 10648 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 delta 4112 zcma)}GxWvul*qY^Z^}+DKf|_h)9_yfxbzO(J;EH3x$pTo$@&Xx&JS zlC&Ze4~5c0%R5MsmK-J6(((>Hcxb^wp$EZ3J$X}lPu3D!S6y6MZ`vg46 zLV(FS7G1OK_;2fH9jt)DAqhG&!TMoH2P@#HlPpg=qSmkm7Dw&``zN0fGqpLafyI$J zNt7w;cyxQ%jwka^vTCxZgUMnH=y$=oSZrUuLh&m#S=7Z7GBnnetdDlKFW=Wi_3}{{ z&lk90#|-LuQ3XX^OjY0;g)mjeqZdUxUf*?3lPcV7Q-z2mlq6NBZ4E5OBpqy?8P=w)fyE^3ZlXk4wdl5O$NOIYRR=2w(VK_f zOt7B6p@Su6C?vv5lB}DP8dzL{?qm1Nu%1q8U~vh%pEOy&PulVFJ}s;;z%vr`W`b4S zuYtuJDfA>svL5bNVKGO7POy7sSmm+`i#ZZ@k~CStHdLA}osDOt7xKse|Q8 zp{Gfb^_ruBQnEPikX^7I?rLugj{_Yn zd7N^z*7YUK?{2RQ*ZB!$EHf${k>j3bgk>#7)1e*x#i{baU{uN%H!o|jI>hDhnPz4& zCM7FGZzfoKXLPXSaT;RiO|X8N(ZC8YS)PO4`#)GKRXYl+8dw3s_Z(cdWj%y-p{j+& zeYl36i{4DI&K}gklE$g$CP`LiRs)OUb@p8Bo_si1+eNazot=o*XPKI;P=fC!OV&5D z|D@l3tFzUJNAvOr&3YgWLC-^LBb`@jHrG=~9qrkApWd3gAAC46^zxxwYrG=_@RQ?7 zPs+uPz(Ou3Udv}j^M|%x%h%WDKVF+piAsy=71bvyBPuJZUsO)iHc^(S0a1gZhQ42$ SA720E#>QxVuJ2H~Fz_$@-+j&i diff --git a/requirements.txt b/requirements.txt index 1f7df40..c4ddab8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,8 @@ -numpy==1.19.5 +numpy==1.23.0 +onnx==1.12.0 +onnx_simplifier==0.3.10 +onnxruntime==1.11.1 +onnxsim==0.4.0 opencv_python==4.2.0.34 pycocotools==2.0.4 PyYAML==6.0 diff --git a/test.py b/test.py index c0d9fb7..53ca3dd 100644 --- a/test.py +++ b/test.py @@ -1,7 +1,9 @@ import os import cv2 +import onnx import time import argparse +from onnxsim import simplify import torch from utils.tool import * @@ -55,12 +57,18 @@ if __name__ == '__main__': # 导出onnx模型 if opt.onnx: - torch.onnx.export(model, #model being run - img, # model input (or a tuple for multiple inputs) - "./FastestDet.onnx", # where to save the model (can be a file or file-like object) + torch.onnx.export(model, # model being run + img, # model input (or a tuple for multiple inputs) + "./FastestDet.onnx", # where to save the model (can be a file or file-like object) export_params=True, # store the trained parameter weights inside the model file opset_version=11, # the ONNX version to export the model to do_constant_folding=True) # whether to execute constant folding for optimization + # onnx-sim + onnx_model = onnx.load("./FastestDet.onnx") # load onnx model + model_simp, check = simplify(onnx_model) + assert check, "Simplified ONNX model could not be validated" + print("onnx sim sucess...") + onnx.save(model_simp, "./FastestDet.onnx") # 导出torchscript模型 if opt.torchscript: