1.train

  • configure文件表示整个模型结构,是mmdetection里面最重要的部分。就是使用一个configure文件来管理所有的内容,是因为整个ML的参数太多了,所以统一在config文件夹中进行设置。

  • 具体要写多少层,训练策略,选取的优化器,数据的处理等,这些所有的参数你都不能每次都去源码里面去改,那就把这些所有的事情都写到一个config文件里面。然后让一键构建,这就是config文件的作用。

  • config文件是mmdetection最重要的部分,其实不仅仅是参数的设定,它还包括了模型的构建,模型整个搭起来就是在一个config文件里面的。

  • mmdection的config文件就是一个py文件,yaml文件也是config文件的一种类型。

  • 比如你打开一个py文件,如上图所示,你也不知道是什么意思,其实这个文件特别长,但是你看到的就是这一句话。为什么只有这一句话呢?这是因为它索引了base,它索引了一个前面的配置文件。它只对这个配置文件的这一些字段做了修改。

  • 点这个配置文件,你会发现它索引了另外一个配置文件,另外一个配置文件可能又会索引到另外一个配置文件,这样的索引,可能要7-8次。

  • 对于新手来说,往往难以找到字段,所以说的第一个重要的事情就是print_config()把所有的参数都打印出来。

    1.1 print_config()

  • 在mmdetection里面给了一个tools工具将config文件打印出来。

可以将config文件的所有内容,打印到一个py脚本当中。这是第一个重要的点,尤其是对于刚学的人来说,你那些字段是什么,甚至不知道有那些字段。

一定要把config文件中的信息打印出来去研究,这是第一件事情。

1.2 训练模型

  • 你想模型只需要这一句话,,连后面的--work-dir $WORKDIR 都不需要。
  • 只需要你想train什么都可以,所以config就是包含了所有。训练就只需要包含这一句话就好了。所以config是极其重要的重点。
  • mmdetection集成了非常多的算法,举个例子,比如打开fastercnn这个算法,

faster_rcnn里面又包含各种结构,比如backbone不一样,训练策略的不一样,数据集的不一样等。

比如说这个配置文件,这个命名是有严格规范的,

  • 1.faster_rcnn--- 对应方法。

    2.r101-------backbone。

    1. fpn------Feature pyramid network(特征金字塔网络),提高目标检测的准确率,尤其是小目标的检测

    2. mstrain---多尺度的训练。

    3. 3x---longsgadule 更长时间的训练 1x 就是12个epoch3x就是36个epoch

    4. coco---是指在coco数据集上进行训练。

每一个文件夹集成了一个方法,每个方法又有不同的结构训练方式。