mxnet 训练--如何生成rec 数据 +自己在本机测试的结果

来源:互联网 发布:java多线程读取大文件 编辑:程序博客网 时间:2024/05/02 01:54

mxnet 训练:

http://www.th7.cn/system/lin/201512/145949.shtml

一、MXNet,不是直接处理原生数据比如图片之类的,而是处理的自定义的一种文件格式rec。而rec格式的文件由依赖于一个描述原生数据的列表文件格式lst。 我们可以理解为caffe 下面的lmdb,caffe 的输入格式也不是图片,而是要转成lmdb 格式。

 二.从原生数据生成lst文件

这个图像文件列表的格式如下:integer_image_index /t label_index /t path_to_image

在mxnet/tools/路径下运行make_list.py

python make_list.py /root/DATA/caltech256x256-256/train/ /root/DATA/train --recursive=True

第一个参数是图片所在的根目录
      第二个参数是生成lst文件的前缀,这里我们可以把路径加进去从而保证test.lst是生成在~/data/下的。 

第三个参数代表每读取一个目录,增加一个类标,因为/root/DATA/caltech256x256-256/train/文件下有很多类的文件,每个文件里面存放每类的图片。

三.从lst文件生成rec

在路径mxnet/bin/下有个文件:im2rec

直接在命令行使用这个文件就行。具体使用方法可以查看源码,这里我只举个最简单的栗子:

./im2rec /root/DATA/train.lst /root/DATA/caltech256x256-256/train/ /root/DATA/train.rec

第一个参数指明lst文件 
       第二个参数指明图片根目录,这样才能找到图片 
        第三个参数指明生成的rec文件

四.创建Data Iterator

参考mxnet/example/image-classification里面train_cifar10.py或者train_imagenet.py例子进行修改即可。





1 0