每次安裝 都會吃悶虧. 紀錄下過程, 給自己或是有需要的人.
主機配備 :
CPU: 11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2.50 GHz
RAM: 32GB
GPU 3080 Ti
安裝步驟, 列下成功的版本, 供參考
1. python (ver 3.7.7)
2. Git (2.26.2?)
3. CMake (3.22.0-rc3)
4. Visual Studio Installation (VS2019)
5. CUDA driver (11.5) and CuDNN driver (8.2.4)
前4項就先行跳過, 可自行google / youtube search , 可以找到很多詳細說明. 或這裡
A. 安裝CUDA toolkit driver https://developer.nvidia.com/cuda-toolkit-archive
最重要的是選版本, 如果是30 系列, 要選11.x 以後的版本.
一開始就直接選最新的, 11.5 這也是在過程中遇到困難的因素.
# 須要註冊後才可以download. 及安裝.
安裝完畢後, 在 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5 會有所有的driver 的相關的lib
B. 下載及設定 CuDNN https://developer.nvidia.com/rdp/cudnn-archive
最重要的是選版本, 請依說明選擇就可以, 但如果用到11.5 版本, 就不能選 8.3 以上的版本, bug 尚未修正 (2021/11/20)
如果還是不成功, 請加安裝CUDA 11.1, 記得將C. C-source 說明的步驟再做一次
##重要動作 下載解壓後, 將3個目錄的貼到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\ bin, lib , include
&&& 如果選錯版本, 在run time 時會出現 以下的錯誤
Could not load library cudnn_ops_infer64_8.dll. Error code 126
Please make sure cudnn_ops_infer64_8.dll is in your library path!
&&& 以為將檔案copy 到適當的地方可以修正, ........ 但又出現以下的錯誤
Could not load library cudnn_cnn_infer64_8.dll. Error code 126
Please make sure cudnn_cnn_infer64_8.dll is in your library path!
# 至此就是無盡的嚐試, 但無論將檔案copy 到任何可能的位置都不會成功.
在這裡 發現原因: https://githubmemory.com/repo/AlexeyAB/darknet/issues/8206
C. C-source 說明
a. download source : 先建立及cd 到對的工作目錄, 在 windows_Box : command line 下輸入 "git clone https://github.com/AlexeyAB/darknet.git"
b. D:\Yolo_v4\darknet\build\darknet, 對以下2個檔案做修正. 指定到對的 toolkit 版本號
1. darknet.vcxproj
2. yolo_cpp_dll.vcxproj
&&& 可使用 notepad 或文字編輯軟體來修正.
<Import Project="$(VCTargetsPath)\BuildCustomizations\CUDA 11.5.props" /> " 將11.5 改到 CUDA 的版本
有二處須修正.
c. 在darknet.vcxproj 按右鍵開啟
如果windows SDK 的版本比source code 新, 會跳出dialog 讓你選擇
然後直接建置方案--> 重建方案
接下來對可能的error 做修正
1. 缺少 include path: C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.5\include
2. 加入 opencv 的include path:
3. 缺檔案:
Copy cudnn64_7.dll, or cudnn64_8.dll to build/darknet/x64 <--- 最後執行檔darknet 所放置的目錄
4. 缺 sw package
Install pthread
VS2019--> project --> 管理 Nuget 套件 --> 切到瀏覽 search "pthread" then install

5. 如果安裝順序不對, 還會有其他問題, 以下為非正規的修正
a. 一堆 Error/ undefined :Identifer "Blockidx" Is Undefined
在source 中, 增加 include, or define
include , device_launch_parameters.h device_functions.h
b. 屬性中 CUDA C/C++ 的device,
compute_35,sm_35;compute_86,sm_86, _30, _20, _10, &我尚不知真實含義, 應跟GPU 系列的指令集相關
6. 增加環境變數給, lib, include path, 或是直接加入在專案->屬性-> c++, link 中
1. On the Windows taskbar, right-click the Windows icon and select System.
2. In the Settings window, under Related Settings, click Advanced system settings.




d. 建立 darknet.vcxproj , yolo_cpp_dll.vcxproj 如果都沒有error 且產生目標檔, 就可以執行測試
a. cmd ,,, then enter
![]()
darknet detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights data/dog.jpg
darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -thresh 0.25
直接測試!!!
# darknet_no_gpu.sln : 不須使用 GPU 的版本.
Good Luck!!!
其他YOLO相關文章
darknet.exe 使用說明-訓練命令發生錯誤 -Create 6 permanent cpu-threads. -任性學習
YOLOV4 training-訓練步驟 darknet-從零開始- 任性學習
YOLO 準備資料的小工具(一)-png to jpg -任性學習
YOLOV4 建立darknet 綠色執行環境 - 任性學習
在windows 中 安裝 YOLOV7 pytorch CUDA 3080 環境建立
AI:
請先 登入 以發表留言。