yolov3调参以及训练时的一些坑(持续更新)

colab+yolov3的使用(2020/03/21)

训练时采用的google提供的免费的免费GPU的训练平台colab(薅资本主义的羊毛真爽),colab是一个实验性的项目平台,提供了Tesla k80的显卡,自己学习学习或者做小项目是够用的。配置colab参考的如下教程(需网上冲浪):
https://blog.csdn.net/qq_26690795/article/details/81948526
https://blog.csdn.net/oldmao_2001/article/details/90737735

配置colab很简单,这里主要说的是colab里使用yolov3,搞了好长时间才搞出来,国内的资料本来就少结果有些人说的还是错的,最后还是google解决了问题,在colab里使用yolov3教程如下:
https://colab.research.google.com/drive/1lTGZsfMaGUpBG4inDIQwIJVW476ibXk_#scrollTo=ZreQ_407H1uw(这个是官方的,讲解的比较详细但复杂,很多操作其实不需要)
https://colab.research.google.com/drive/1XCsO_VZo7bCKv6x_QNYlOFwiuEFtwIP3#scrollTo=-liuELtLfbJc(主要参考这个,一步步跟着做是没问题的)

其实我遇到的主要是编译的问题,没有找到gpu的编译版本(其实是懒得找),直接make是怎么也通过不了的,也试了一些比如更新显卡驱动之类的方法,但都没有用,还是第二篇教程里的!sed -i 's/GPU=0/GPU=1/g' Makefile解决了问题。

配置yolov3(or tiny-yolo)config文件

刚开始主要是一些参数的功能不明确,参考了一些文章,稍微总结一下遇到的坑(配置的过程和参数的作用就自己百度吧):

  • 首先要说的是在训练是要把Testing那部分注释掉,使用默认注释的Training那部分,测试时使用Testing那部分。
  • 在我的一次训练时遇到了这么一个错误
    darknet: ./src/parser.c:315: parse_yolo: Assertion `l.outputs == params.inputs’ failed.
    经过查询发现应该是config文件中filter这个参数的问题,很多教程都说每个yolo层前面的filter应该改成 :
    filters:3*(5+len(classes))
    ,但其实应该是这样的:
    fiiter= num/3*(classes+5)
    num也是config文件里的一个参数,指的是锚点对的数目,所以如果增加锚点,也要增加num。(这里的算式不是指复制过去就完了,是需要根据实际情况算的)

你可能感兴趣的:(yolov3)