Ubuntu環境下編譯安裝AlexeyAB/darknet

Ubuntu環境下編譯安裝AlexeyAB/darknet

Darknet簡介

darknet是一個極易上手的深度學習框架,自帶圖像編解碼,文檔也十分的豐富。最難能可貴的是darknet框架安裝簡單;沒有任何依賴項;有有好的python接口。
darknet框架易用於Windows平臺和Linux平臺,

這是一個小衆的深度學習框架,能看到這篇博客,也就不用我來吹捧darknet了。

安裝darknet

darknet項目地址:https://github.com/AlexeyAB/darknet

clone後會得到darknet目錄。進入darknet目錄後打開Makefile文件
文件示例:

  • LIBSO選項,打開有驚喜
# 想開啓哪個功能就將它的值改成1
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=0
AVX=0
OPENMP=0
LIBSO=1 # 打開有驚喜
ZED_CAMERA=0

# set GPU=1 and CUDNN=1 to speedup on GPU
# set CUDNN_HALF=1 to further speedup 3 x times (Mixed-precision on Tensor Cores) GPU: Volta, Xavier, Turing and higher
# set AVX=1 and OPENMP=1 to speedup on CPU (if error occurs then set AVX=0)

DEBUG=0

ARCH= -gencode arch=compute_30,code=sm_30 \
      -gencode arch=compute_35,code=sm_35 \
      -gencode arch=compute_50,code=[sm_50,compute_50] \
      -gencode arch=compute_52,code=[sm_52,compute_52] \
	  -gencode arch=compute_61,code=[sm_61,compute_61]

OS := $(shell uname)

# 用的是什麼型號的顯卡,就給對應的 “#” 號去掉
# Tesla V100
# ARCH= -gencode arch=compute_70,code=[sm_70,compute_70]

# GeForce RTX 2080 Ti, RTX 2080, RTX 2070, Quadro RTX 8000, Quadro RTX 6000, Quadro RTX 5000, Tesla T4, XNOR Tensor Cores
ARCH= -gencode arch=compute_75,code=[sm_75,compute_75]

# Jetson XAVIER
# ARCH= -gencode arch=compute_72,code=[sm_72,compute_72]

# GTX 1080, GTX 1070, GTX 1060, GTX 1050, GTX 1030, Titan Xp, Tesla P40, Tesla P4
# ARCH= -gencode arch=compute_61,code=sm_61 -gencode arch=compute_61,code=compute_61

# GP100/Tesla P100 - DGX-1
# ARCH= -gencode arch=compute_60,code=sm_60

# For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment:
# ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]

# For Jetson Tx2 or Drive-PX2 uncomment:
# ARCH= -gencode arch=compute_62,code=[sm_62,compute_62]

配置完成後,剩下的就是make了
直接make install就OK了。

檢測是否安裝成功

./darknet detector test data/detect.data data/yolov3.cfg data/yolov3.weight

簡單使用

安裝完成以後,就可以選擇你要使用的weight文件可模型進程使用了。搭配python接口,很容易做出一個圖片分類接口。
看到沒有,打開LIBSO選項後,目錄下會產生use_darknet.py的文件
簡單示例:

import python.darknet as dn

dn.set_gpu(0)
net = dn.load_net(str.encode("cfg/tiny-yolo.cfg"),
                  str.encode("weights/tiny-yolo.weights"), 0)
meta = dn.load_meta(str.encode("cfg/coco.data"))
res = dn.detect(net, meta, str.encode("data/dog.jpg"))
print(res)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章