注意:本文主要是学习用,发现了一个在faster rcnn训练流程写的比较详细的博客。
大部分内容来自以下博客连接:https://blog.csdn.net/weixin_37203756/article/details/79926543
以下为正文:
第一点:首先要明白faster rcnn目录下都有哪些文件夹,都有什么用处。
文件夹:
data ----------------> 存放的是用于训练的数据集,一般我们用的都是voc2007的数据集,还有一个很重要的文件夹是imagenet_weights, 必不可少的,
这里存放的也就是VGG的模型,还有一个cache文件夹是随着训练的进行,用来存放数据的,为了下次加载数据方便。
expreiments------>下面有个scripts文件夹里面存放的是faster_rcnn_end2end.sh, 算是起始指令吧,我们是通过运行这个文件,加载参数来调用
其他各个文件的。
lib-------------------->该文件夹存放的东西很多,主要是一些python接口及运行的Log文件。所以说程序运行之前先make一下,关于里面各个作用,
下面我会根据流程一一讲解。
output--------------> 存放的是你的输出结果,你的训练结束后所训练好的模型。
tools---------------->里面存放的是训练、测试的加载起始文件。demo.py是一个简单的测试文件。
好了,关于各个文件的说明已经结束。
第二点:faster rcnn训练流程开始。
通过 ./experiments/scripts/faster_rcnn_end2end.sh 0 VGG16 pascal_vo命令,调用tools/train_net.py
加载完参数后imdb=get_imdb(args.imdb_name)调用get_imdb()函数(该函数来自于lib/datasets/factory.py)
返回的是一个lmbda表达式,其实是通过pascal_voc()函数来创建imdb数据的,通过该表达式,进入了
pascal_voc函数,初始化了imdb数据,此时,数据加载完成。
-----> self._roidb_handler=self.gt_roidb, 并设置了gt_roidb