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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章