YOLOv3相关设置

darknet的编译

  • git draknet
    git clone https://github.com/pjreddie/darknet

  • 配置CPU版

    cd darknet
    make

  • 配置GPU版

    • 修改配置文件

      GPU=1

      CUDNN=1

      OPENCV=1

      NVCC=/usr/local/cuda-8.0/bin/nvcc

      最主要的是修改你的CUDA路径为你系统中安装的路径。

    • 编译

      make

  • 执行方法:
    主页链接 在官网主页上都有运行的方法。查看即可。

遇到的问题

./src/network.c:402: resize_network: Assertion `0’ failed

解决方案:在Makefile文件中,添加和你的GPU相应的计算能力的数值。也就是-gencode arch=compute_61,code=sm_61。更改后面的数值即可。还要将network.c文件中402行注释掉。(当然这样有点掩耳盗铃的意思)另外,可能需要在cfg文件夹下更改yolov3-voc.cfg文件中的batch数值。这个使用训练中的数据就可以了,64和16.如果还报错的话,可以将16改为8再尝试一下。反正就是多多尝试就好了。

参数的含义

参数如下图:
参数

  • batch :所有训练图片的一个批次

  • subdivisions 将一个batch的图片分为sub组送入GPU,减轻显卡压力

也就是说每轮迭代会从所有训练集里随机抽取 batch = 64 个样本参与训练,所有这些 batch 个样本又被均分为 subdivision = 16 次送入网络参与训练,以减轻内存占用的压力)

所以,这个subdivision其实是可以注释掉的。个人理解的话,如果subdivisions越大的话,其实是训练过程中越慢的,batch越大的话,其实是训练速度越快的。

发布了11 篇原创文章 · 获赞 1 · 访问量 9980

猜你喜欢

转载自blog.csdn.net/weixin_41850360/article/details/81384161