第十八节,linux环境下配置yolo网络
ubuntu18.04+CUDA8.0+GTX1080Ti+yolov3+Opencv3.1.0详细配置
系统配置:
内存:16GiB
处理器:Intel Core i7-9700K CPU 3.60GHz*8
图形:GeForce GTX1080 Ti/PCle/SSE2
GNOME:3.28.2
操作系统:64位
磁盘:500GB
-
查看gpu驱动版本:
sudo nvidia-smi
Driver Version:390.116
-
安装CUDA
我这里选择cuda-9.0进行下载。这个是下载cuda的链接地址:https://developer.nvidia.com/cuda-90-download-archive
-
安装CUDNN7.5版本:网上都有教程。
-
安装anaconda3
-
安装OpenCV3.4.1版本
https://opencv.org/releases/page/2/
配置时容易出现问题。 安装了好多次总是出错误。各种各样奇葩的错误。安装过程异常漫长。
https://www.cnblogs.com/aacirq/p/9694951.html按照这个教程试一下,一次不成功多尝试几次。
-
查看显卡信息时突然显示NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
借鉴https://blog.csdn.net/sinat_23619409/article/details/85220561
-
平台linux+官网教程https://pjreddie.com/darknet/yolo 按照官网教程。
环境:ubuntu18.04
显卡:GTX1080Ti
-
1) Region 82 Avg IOU: 0.874546, Class: 0.983519, Obj: 0.984566, No Obj: 0.008776, .5R: 1.000000, .75R: 0.750000, count: 4
Region 94 Avg IOU: 0.686372, Class: 0.878314, Obj: 0.475262, No Obj: 0.000712, .5R: 1.000000, .75R: 0.200000, count: 5
Region 106 Avg IOU: 0.893751, Class: 0.762553, Obj: 0.388385, No Obj: 0.000089, .5R: 1.000000, .75R: 1.000000, count: 1
三个尺度上预测不同大小的框,82卷积层为最大预测尺度,使用较大的mask,可以预测出较小的物体,94卷积层 为中间预测尺度,使用中等的mask, 106卷积层为最小预测尺度,使用较小的mask,可以预测出较大的物体。
详解:
Region Avg IOU: 表示在当前subdivision内的图片的平均IOU,代表预测的矩形框和真实目标的交集与并集之比。
Class: 标注物体分类的正确率,期望该值趋近于1。
Obj: 越接近1越好。
No Obj: 期望该值越来越小,但不为零。
count: count后的值是所有的当前subdivision图片中包含正样本的图片的数量。
1: 806.396851, 806.396851 avg, 0.000000 rate, 1.457291 seconds, 64 images
1: 指示当前训练的迭代次数
806.396851:是总体的Loss(损失)
806.396851 avg:是平均Loss,这个数值应该越低越好,一般到0.几的时候就可直接退出训练。
0.000000 rate:代表当前的学习率,是在.cfg文件中定义的。
1.843955 seconds:表示当前批次训练花费的总时间。
64 images:这一行最后的这个数值是1*64的大小,表示到目前为止,参与训练的图片的总量。
- 安装darknet
git clone https://github.com/pjreddie/darknet.git
cd darknet
make
nvidia-smi指令 watch -n 10 nvidia-smi:每个10s刷新显卡占用情况
指令中间连着的不加空格。
第一栏的Fan:风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速不是实际转速。有的设备不会返回转速,因为它不依赖风扇冷却。
第二栏的Temp:是温度。
第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
第五栏的Bus-Id是涉及GPU总线的东西,domain:bus:device.function
第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
第五第六栏下方的Memory Usage是显存使用率。
第七栏是浮动的GPU利用率。
第八栏上方是关于ECC的东西。
第八栏下方Compute M是计算模式。
下载权重:
wget https://pjreddie.com/media/files/yolov3.weight
测试程序:
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg 或者 ./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg
layer filters size input output 0 conv 32 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 32 0.299 BFLOPs 1 conv 64 3 x 3 / 2 416 x 416 x 32 -> 208 x 208 x 64 1.595 BFLOPs ....... 105 conv 255 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 255 0.353 BFLOPs 106 detection truth_thresh: Using default '1.000000' Loading weights from yolov3.weights...Done! data/dog.jpg: Predicted in 0.029329 seconds. dog: 99% truck: 93% bicycle: 99%