近期使用同样的数据同样的yolov3 tiny网络配置文件实验对比了GitHub - pjreddie/darknet: Convolutional Neural Networks和https://github.com/AlexeyAB/darknet,发现使用两者训练出来的weights文件拿到Jetson Nano上去嵌入到deepstream中使用(网络cfg文件是一样的),用来做视频识别,发现实际表现上,两者训练出来的weights导致模型的精度和召回率相差很大,Alexey版明显比pjreddie差很多,一下想不出准确原因在哪,或许是因为目前版本的deepstream中内置的基于TensorRT实现的yolov3(/tiny)是完全与pjreddie的实现保持一致的?(原因已查明,deepstream内在调用模型做识别时,当模型内部有定制层用plugin实现时,cuda stream必须和模型的其他层使用同一个,不能内部自行再创建或者不传入cuda stream使用tensorrt内部默认的stream,另外deepstream在后处理metadata过滤bbox时有个bug,报给了NVIDIA)。
之前在RTX3090 GPU server上使用pjreddie版的darknet面临一个左右为难的问题,RTX3090 GPU只能使用CUDA11.x才能跑得正常,但是没有与CUDA11.x对应的cudnn7.x,而pjreddie版的darknet的代码比较老旧了,依赖于cudnn7.x,所以在一个CUDA11.1+cudnn8.x的环境下编译pjreddie版的darknet的话,修改Makefile,设置:
GPU=1
CUDNN=1
OPENCV=1
后,一执行make就报错:
&nbs

本文对比了两种不同的Darknet版本在JetsonNano平台部署YoloV3Tiny网络的表现差异,并详细记录了解决在RTX3090GPU上编译PJReddie版Darknet遇到的问题的过程。
最低0.47元/天 解锁文章
4991





