基于JetsonOrin载板以YOLOX模型为例,实现环境部署、数据集制作、模型训练与部署

1、环境部署

1、conda 创建环境,创建一个单独的torch环境

conda create -n torch_2 python=3.8

然后在完成torch与torchvision的配置。链接:NVIDIA JETSON AGX XAVIER 环境配置记录_nvidia jetson agx xavier配置-CSDN博客

 然后进行测试

conda activate torch_2
python3
import torch
import torchvision
print(torch.__version__)  # 查看torch版本
print(torchvision.__version__)  # 查看torchvision版本
print(torch.cuda.is_available())  # 查看torch下cuda是否可用

2、创建YOLOX训练环境

conda create -n yolox -clone torch_2
# 激活环境
conda activate yolox
cd yourpath
download the code https://github.com/Megvii-BaseDetection/YOLOX/releases/tag/0.3.0
cd yolox
# 配置环境
pip3 install -U pip && pip3 install -r requirements.txt

3、解决error:Protobuf compiler not found Call Stack

参考链接:

onnx安装失败,Protobuf compiler not found-CSDN博客解决jetson nano安装onnx错误(ERROR: Failed building wheel for onnx)总结-CSDN博客

sudo apt-get install  libprotobuf-dev protobuf-compiler

再次运行

pip3 install -U pip && pip3 install -r requirements.txt

完成后,输入

python3 setup.py develop

以上即完成环境的配置,由于pip已换成清华源,所以不用科学上网。科学上网时,使用上述代码时,会出现找不到包。

2、代码测试

demo运行,下载官方权重。

然后运行

 python tools/demo.py image -n yolox-s -c weight/yolox_s.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device [gpu]

3、数据集创建

参考COCO数据集格式:

4、模型训练

python tools/train.py -f exps/example/custom/yolox_s.py -d 1 -b 8 --fp16 -c weight/yolox_s.pth

5、模型部署(这部分问题比较多)

1、基于训练好的 .pth文件,第一步尝试将 .pth->onnx格式。

python3 tools/export_onnx.py --output-name yolox_s.onnx -f exps/example/custom/yolox_s.py -c weight/best_ckpt.pth

然后基于生成的onnx文件,利用Jetson自带的 trtexec 进行转换为engine格式。

./trtexec --onnx=yolox_s.onnx --saveEngine=yolox.engine

但是我在这步遇到了比较麻烦的问题。

error:
onnx2trt_utils.cpp:375: Your ONNX model has been generated with INT64 weights, while TensorRT does not natively support INT64. Attempting to cast down to INT32.
[07/01/2024-22:00:41] [W] [TRT] onnx2trt_utils.cpp:403: One or more weights outside the range of INT32 was clamped. 尝试网上的办法,均不行。因此考虑YOLOX 自带的trt.py.

2、基于训练好的 .pth文件,直接利用trt.py 文件将.pth->engine格式.

 python3 tools/trt.py -f exps/example/custom/yolox_s.py -c weight/best_ckpt.pth

error1:
no module named tensorrt
参考链接:jetson 系列 安装完jetpack/已安装 tensorrt 在虚拟环境中仍然报 no module named tensorrt >> 在虚拟环境建立软连接_tensorrt: export failure 6.2s: no module named '-CSDN博客

将 tensorrt.so 链接到yolox的python环境中。

error2:
ModuleNotFoundError: No module named 'torch2trt'

解决办法:在本环境下安装torch2trt;

git clone https://github.com/NVIDIA-AI-IOT/torch2trt
cd torch2trt
python setup.py install

其中运行setup.py 会出现错误,显示  module 'tensorrt' has no attribute '__version__'。但其实并不影响安装,将setup.py中的__version__语句注释掉,然后顺利安装。(提示:本人安装的版本>8,因此该条件语句不会执行,所以直接注释,并无影响)

error3:
 module 'tensorrt' has no attribute '__version__'

 python3 tools/trt.py -f exps/example/custom/yolox_s.py -c weight/best_ckpt.pth

这时的报错应该就是torch2trt安装包中关于输出tensorrt.__version__的语句,直接将其改为你的tensorrt.__version__版本,例'8.5.2.2'

后面就不再有什么报错,然后在output文件夹中找到相应的engine文件,然后就可以部署啦。(本人用的是Jetson AGX Orin,可能在其他环境下并不会遇到这种问题)

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值