Ubuntu安装YOLOv3 darknet with cuda、cudnn、opencv,解决out of memory

YOLOv3官网:https://pjreddie.com/darknet/yolo/

平台:Ubuntu 19.04,RTX2060

安装cuda、cudnn

直接通过apt安装:

sudo apt install nvidia-cuda-toolkit

注意:

  • Anaconda安装的cuda在编译时检测不到,所以需要安装到本机
  • 这样装的是最新版,我装的时候是cuda 10.1

安装cudnn:

  1. 从官网下载cudnn的两个deb包(cuDNN Runtime Library for Ubuntu 18.04[Deb]和cuDNN Developer Library for Ubuntu 18.04[Deb]),没有账号可以注册一个。点此进入官网下载
  2. 安装cuDNN Runtime Library for Ubuntu 18.04[Deb]
sudo dpkg -i libcudnn7_7.6.3.30-1+cuda10.1_amd64.deb
  1. 安装cuDNN Developer Library for Ubuntu 18.04[Deb]
sudo dpkg -i libcudnn7-dev_7.6.3.30-1+cuda10.1_amd64.deb

注意:

  • 非dpkg包管理器的Linux可以使用DNN Library for Linux
  • 理论上讲只需安装cuDNN Runtime Library for Ubuntu,但还是显示找不到cudnn

安装opencv

被这个dog东西折腾了好久,一直尝试用官网文档进行编译,好不容易编译成功又“no package 'opencv' found”。其实一条apt就能解决:

sudo apt install libopencv-dev 

编译darknet

这个跟随官网教程即可

git clone https://github.com/pjreddie/darknet.git
cd darknet
make

解决 cuda out of memory

方法一 使用yolov3-tiny.cfg

./darknet detect cfg/yolov3-tiny.cfg yolov3.weights data/dog.jpg

方法二 修改yolov3.cfg,将图片宽高改小

cd cfg
cp yolov3.cfg yolov3.cfg.backup
vim yolov3.cfg
#width=608
width=416
#height=608
height=416