[TOC]


第一步:生成list文件

首先,在你的MXNet目录下找到im2rec.py的位置:

1
~/mxnet/tools/im2rec.py

其次,准备好你要用来生成rec文件的数据集,存放在某个目录下,如:

1
/home/xxx/data/

现在,我们可以开始生成list文件了,文件后缀为:.lst

python ~/mxnet/tools/im2rec.py –list True –recursive True –train-ratio 0.9 myData /home/xxx/data/


对上面的参数进行解释:

–list:当要生成list文件时,这个参数一定要设为True,表示当前用来生成的list文件;默认是生成rec文件;

–recursive:递归的遍历你的所有数据集,要设为True;

–train-ratio:用来将你的全部数据集拆分成两部分:训练集(train)和交叉验证集(val),具体多少作为训练集,多少作为验证集,就由这个参数来确定;

–test-ratio:同上,分成训练集和测试集两部分;

–exts:这个是你数据的后缀(注,这里我们一般说的图片数据),目前的MXNet只支持两种图片格式:jpg和jpeg,所以如果你的图片是png格式,可以对im2rec.py作如下修改:
将:

1
cgroup.add_argument('--exts', type=list, default=['.jpeg', '.jpg'], help='list of acceptable image extensions.')

改成:

1
cgroup.add_argument('--exts', type=list, default=['.jpeg', '.jpg', '.png'], help='list of acceptable image extensions.')

就OK了。

prefix:这里指的是你要生成list文件的前缀名,我这里命名为myData;

root:这里指的是你的图片数据存放的路径;

不一一列出了,如果你想要知道更多的参数用法,可以如下:

python ~/mxnet/tools/im2rec.py –help

或者你直接打开im2rec.py文件进行查看;


执行完这个命令,你会发现生成两个文件:myData_train.lst和myData_val.lst


第二步:生成rec文件

有了第一步生成的list文件,我们就可以很easy的生成mxnet需要的文件格式rec文件了。

python ~/mxnet/tools/im2rec.py –num-thread 4 –pass-through 1 myData /home/xxx/data/

上面命令中的参数跟第一步差不多,有一个参数要注意:

–pass-through: 设为1,即跳过矩阵变换,否则会报错:未知的array type;

myData就是第一步中生成.lst文件的前缀,这里用它来生成rec;

执行完这条命令,你就会看到两个文件:myData_train.rec和myData_val.rec

结束。