基于mxnet的Deep-Feature-Flow源码架构解析

首先声明本人菜鸟一枚,如有任何错误欢迎指正!

继做完Deep-Feature-Flow的PPT后,老大又让跑DFF的代码,但无奈之前专注于caffe框架,但DFF官方只给了mxnet框架上的源码(果然微软人家要推广自己家的框架哇),所以成为组里第一个转战mxnet的实习生【笑哭】。在跑通demo后(跑代码过程见mxnet编译运行DFF),后又花了大概3周的时间研读代码,构建起总的框架,期间收获了很多,也为下一步对DFF的改进打下了基础

基于mxnet的Deep-Feature-Flow源码架构解析_第1张图片

----------------------------------------------------主子镇楼-----------------------------------------------------------

一、mxnet下Deep-Feature-Flow的文件夹结构

当打开下载的DFF包后,我们都是一脸萌币的。

首先可以看一下READ_ME文件:包含了Introduction、Disclaimer、License、Requirements、Installation、Demo、Preparation for Training & Testing、Usage等部分内容,可以对整个DFF代码有一个初步的了解(当然是要在看完看透论文的基础上)。

然后我们来看各个文件夹的内容

基于mxnet的Deep-Feature-Flow源码架构解析_第2张图片
DFF中主要文件夹

data:包括了训练和测试使用的datasets相关文件

demo:包括了在运行demo时使用到的输入图片,以及用来存储demo生成的标定结果图片。

dff_rfcn:这个文件夹包括了DFF的绝大部分核心代码,包含神经网络的建立文件、用来进行训练和测试的function、class等。本文中,将对这一文件进行重点介绍。

experiments:包括参数的配置文件(./experiments/{rfcn/dff_rfcn}/cfgs)、实验过程的日志文件以及train的源代码(引用了dff_rfcn中的各种函数)

external:包括了与mxnet相关的文件(与我们的源代码基本无关~)

lib:我们在各种安装包里都会见到的文件夹

model:包括了训练所需的模型(ImageNet pre-trained ResNet-v1-101 model and Flying-Chairs pre-trained FlowNet model)

output:用来存储训练及测试过程中的输出(A cache folder would be created automatically to save the model and the log under)

rfcn:包含了rfcn网络的核心源代码

二、各个文件的相互对应与import关系

基于mxnet的Deep-Feature-Flow源码架构解析_第3张图片
demo(简化版的experiments)
基于mxnet的Deep-Feature-Flow源码架构解析_第4张图片
正式的train和test

三、神经网络搭建文件解析

见后续

四、实验过程:训练与测试

以正式训练时的dff_rfcn_end2end_train.test.py为例:

dff_rfcn_end2end_train.test.py文件:

基于mxnet的Deep-Feature-Flow源码架构解析_第5张图片
dff_rfcn_end2end_train.test.py
基于mxnet的Deep-Feature-Flow源码架构解析_第6张图片
parse_arg函数

其中train_net()函数是重点,源代码及注释见后续~

你可能感兴趣的:(基于mxnet的Deep-Feature-Flow源码架构解析)