darknet是一个人工智能框架,由C语言实现。正是由于其完全由C语言实现,性能才会更快,配置也更加容易。
darknet有yolo的实现,所以我们可以直接拿yolo的实现来调用。很方便。
darknet也有其他的实现,这里我不一一介绍了。
darknet可以支持实时的识别,并且会告诉你当前每秒的帧数。
darknet的网址:https://pjreddie.com/darknet/tiny-darknet/
最近几天github登不上去,原因是dns解析错误。这个问题想必大家都已经遇到过。但是程序员不能一天没有github,那么怎么解决呢?
https://blog.csdn.net/where_is_horse/article/details/80143083
好了,下面我们来开始darknet的配置。
首先下载darknet
git clone https://github.com/pjreddie/darknet.git
接着:
cd darknet
make
这样就CPU版本的就编译完成了
测试编译是否正确,我们就需要下载网络的权重
下载权重:
wget https://pjreddie.com/media/files/tiny.weights
运行
./darknet classify cfg/tiny.cfg tiny.weights data/dog.jpg
如果显示:
data/dog.jpg: Predicted in 0.160994 seconds.
malamute: 0.167168
Eskimo dog: 0.065828
dogsled: 0.063020
standard schnauzer: 0.051153
Siberian husky: 0.037506
就表示成功了
接着配置gpu
将Makefile中gpu后面的0变成1
下载gcc-4.9.4
wget http://mirror.koddos.net/gcc/releases/gcc-4.9.4/gcc-4.9.4.tar.gz
解压
tar -xvf gcc-4.9.4.tar.gz
进入目录
cd gcc-4.9.4
下载依赖
./contrib/download_prerequisites
找到一个文件夹安装gcc
cd ..
mkdir gcc4.9.4
cd gcc-4.9.4
配置
./configure --prefix=/path/to/gcc4.9.4 -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++
编译
make -j24
安装到自定义目录
make install
配置环境变量
vim ~/.bahsrc
添加两句
export $PATH=/path/to/gcc4.9.4/bin:$PATH
export LD_LIBRARY_PATH=/path/to/gcc4.9.4/lib:/path/to/gcc4.9.4/lib64:$LD_LIBRARY_PATH
使环境变量生效
source ~/.bashrc
查看是否配置成功
gcc --version
在gcc配置成功之后,就需要配置cuda
首先确定服务器上时候有cuda
locate cuda
找到相应的cuda路径之后
将Makefile中的
COMMON+= -DGPU -I/usr/local/cuda/include/
换成
COMMON+= -DGPU -I/path/to/cuda/include/
把
LDFLAGS+= -L/usr/local/cuda/lib64 -lcuda -lcudart -lcublas -lcurand
变成
LDFLAGS+= -L/path/to/cuda/lib64 -lcuda -lcudart -lcublas -lcurand
添加环境变量
vim ~/.bashrc
添加两句
export $PATH=/path/to/cuda/bin:$PATH
export LD_LIBRARY_PATH=/path/to/cuda/lib:/path/to/cuda/lib64:$LD_LIBRARY_PATH
使环境变量生效
source ~/.bashrc
保存后将以前编译的清除
make clean
再进行编译
make -j24
编译成功后再进行测试
cuda配置成功后,我们开始配置cudnn
修改Makefile将cudnn后面的0变成1
打开nvidia开发者网站
首先需要注册一个nvidia的账号后才可以下载
选择和自己的cuda相匹配的cudnn
下载完毕后
tar -xvf cudnn.tar.gz
修改Makefile
把
COMMON+= -DCUDNN
改为
COMMON+= -DCUDNN -I/path/to/cudnn/include/
把
LDFLAGS+= -lcudnn
变成
LDFLAGS+= -lcudnn -L/path/to/cudnn/lib64
将编译好的文件删除
make clean
重新编译
make -j6
测试是否编译成功