博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
win10+VS2019+Opencv4.5 编译darknet
阅读量:2123 次
发布时间:2019-04-30

本文共 1636 字,大约阅读时间需要 5 分钟。

Darknet深度学习框架是一个基于C语言编写的开源神经网络框架,同时支持CPU与GPU。

1、环境准备

a、检查已安装的VS2019版本是否安装了C++桌面安装这一项在这里插入图片描述

同时注意查看是否勾选了MSVC v140-VS 2015 C++生成工具这一项,若未安装,则需补充安装一下。
在这里插入图片描述

2、darknet编译

a、下载darknet

b、以文本形式打开darknet.vcxproj
在这里插入图片描述
找到对应下面两句,将其修改为已经安装的cuda版本。

c、打开darknet.sln

在这里插入图片描述
在这里插入图片描述
d、设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
另外,按下图这里需要修改,否则会出现错误 MSB8036 The Windows SDK version 10.0 was not found. Install the require。的错误。
在这里插入图片描述
e、右键项目,点击生成。
在这里插入图片描述
出现:

错误 MSB4019 找不到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\ BuildCustomizations\CUDA 10.2.targets”。请确认 Import 声明 “C:\Program Files %28x86%29\MSBuild\ Microsoft.Cpp\v4.0\V140\BuildCustomizations\CUDA 10.2.targets”中的表达式正确,且文件位于磁盘上。

找到C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations,确实在此路径下没有CUDA 10.2.targets,退出到上一级路径,发现此文件,见下图。

在这里插入图片描述
因此,打开darknet.vcxproj,并对应修改以下两行。

再运行,此问题解决,出现下面的问题。

在这里插入图片描述
出现这个原因可能是显卡版本、cuda版本的问题,参考以下网址
在这里插入图片描述
参考darnet原作者
在这里插入图片描述
因此,找到darknet.vcxproj中的以下两句:

compute_30,sm_30;compute_75,sm_75
compute_35,sm_35;compute_86,sm_86

将这两句删掉,或者改为以下形式

compute_30,sm_30
compute_35,sm_35

或者参考将这两句改为:

compute_30,sm_30;compute_52,sm_52
compute_35,sm_35;compute_52,sm_52

也尝试过这么修改,也成功了。

除了在darknet.vcxproj修改,也可以在属性配置中修改:
在这里插入图片描述

这是我第一次安装过程遇到的问题,当时是win10+cuda10.2,显卡是3080Ti,想着最新版本的cuda可能会在后期出现不兼容的问题就安装了10.2版本。然而,在编译和使用其他相关比如darknet之类的框架时候,总会出现莫名其妙的问题。后来想想是不是根本的问题在于cuda版本和硬件不匹配。然后就以上面的流程重新安装了cuda11.1,之后的 整个安装编译过程反而异常顺利,也没有出现上面提到的问题。

综上所得,cuda尽量还是安装与硬件匹配的最新版本吧。

3、测试

a、下载文件放在…\darknet-master\build\darknet\x64文件夹下,与darknet.exe同路径下。

b、cmd定位到darknet.exe路径下,输入darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg,然后!就出现下面的结果了!!
在这里插入图片描述
很开心啊啊啊!第一次在cuda10.2的环境下,输入命令行之后卡死出结果也不标框,原来一切的锅都在这!!还是让硬件物尽其用不要浪费的好啊!

转载地址:http://ducrf.baihongyu.com/

你可能感兴趣的文章
稻草人手记
查看>>
第一次kaggle比赛 回顾篇
查看>>
leetcode 50. Pow(x, n)
查看>>
leetcode 130. Surrounded Regions
查看>>
【托业】【全真题库】TEST2-语法题
查看>>
博客文格式优化
查看>>
【托业】【新托业全真模拟】疑难语法题知识点总结(01~05)
查看>>
【SQL】group by 和order by 的区别。
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
查看>>
Loadrunner之https协议录制回放报错如何解决?(九)
查看>>
python中xrange和range的异同
查看>>
列表、元组、集合、字典
查看>>
【Python】easygui小甲鱼
查看>>
【Python】关于Python多线程的一篇文章转载
查看>>
【Pyton】【小甲鱼】文件
查看>>
【Pyton】【小甲鱼】永久存储:腌制一缸美味的泡菜
查看>>
【Pyton】【小甲鱼】异常处理:你不可能总是对的
查看>>