YOLOv4中Makefile文件的修改与编译,以及遇到的一些问题
前言
提示:之前利用YOLOv4的darknet来训练自己的数据集的时候,发现GPU的利用率非常低,应该说是没有用到。后来才发现需要修改Makefile文件,但是上网查到很多都是说修改文件内容然后生成就好了,但是我纯小白不知道怎么生成呀,好长时间终于摸索出来了,分享给大家。本文讲解YOLOv4中Makefile文件的修改与编译,以及遇到的一些问题。
一、环境配置
基本的一些环境配置可以看我的上一篇文章,本文主要讲解修改Makefile文件。
-
CMake软件下载
:可以直接上
官网下载
。也可以直接下载我分享的百度云链接 链接:https://pan.baidu.com/s/1UC0mxZicelsKxvnU1eXfdQ
提取码:grx0
-
Cmake软件安装
。运行下载的文件,一路next,记得修改一下安装路径就可以了。
二、使用步骤
1.修改Makefile文件
用记事本打开Makefile文件,将需要修改的内容
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
2.编译Makefile文件
修改Make文件之后,需要编译生成才能完成修改。这里就用到我们之前下载的CMake软件,其实也可以不用这个软件的,但是我没搞明白别的方法怎么用,这个软件是我发现的使用起来还挺简单的。
打开软件
修改Where is the soure code为Makefile所在的文件夹,Where to build the binaries可以选为同一个文件夹,之后点击Confifure
选择你的VS版本,并将平台设为x64,点击Finish
再点击 Generate生成。
生成成功之后,点击open project
随后在vs中打开了该程序,在最上面设置成Release x64,点击 生成>生成解决方案。
在D:\darknet-master\Release目录下复制新生成的darknet.exe文件,粘贴到D:\darknet-master\build\darknet\x64路径下
这样我们就完成了Makefile文件的修改和编译了。
三、遇到的问题
1. configure时,有warning提示没有opencv
错误“By not providing “FindOpenCV.cmake” in CMAKE_MODULE_PATH”
这是因为,Cmake没有检测到你的opencv,只要设置一个环境变量就行。变量OpenCV_DIR,值为你电脑中安装的opencv的build路径。
修改完成后,重启电脑,再次运行就ok了。
2. Generate时,有warning
如图,CMake Warning (dev) in CMakeLists.txt:
Policy CMP0104 is not set: CMAKE_CUDA_ARCHITECTURES now detected for NVCC,
empty CUDA_ARCHITECTURES not allowed. Run “cmake –help-policy CMP0104”
for policy details. Use the cmake_policy command to set the policy and
suppress this warning.
CUDA_ARCHITECTURES is empty for target “dark”.
This warning is for project developers. Use -Wno-dev to suppress it.
查阅policy-CMP后,发现,这是因为使用了 old behavior,但是这个没有影响,可以不理他。