Mxnet学习系列1----制作自己的数据

     Mxnet是由国内大牛写的一个深度学习框架,听很多使用过的大神说,效果不错!速度比Caffe快,占用内存也比Caffe小,所以也打算玩玩!昨天成功调通了minist跑了下,确实挺快的。今天制作自己的数据,其实挺简单的,不过刚开始,走了不少弯路!特写下此篇博客与大家分享!

Mxnet:http://mxnet.readthedocs.org/en/latest/

Data Loading API:https://mxnet.readthedocs.org/en/latest/python/io.html#module-mxnet.io

第一步:制作image list

下载数据后,我们首先要制作一个image.lst文件,文件里的内容格式如:

integer_image_index \t label_index \t path_to_image
一个简单的实例如下:

    肯定有人会说,难道我们要手动一行一行的输入吗?别担心,Mxnet已经给我们提供了一个脚本来完成这个任务。我们可以在mxnet-master->tools 文件夹中找到一个make_list.py脚本,利用他就可以生成这个文件了。下面我们打开这个脚本看看,

def main():
    parser = argparse.ArgumentParser(
        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
        description='Make image list files that are\
        required by im2rec')
    parser.add_argument('root', help='path to folder that contain images.')
    parser.add_argument('prefix', help='prefix of output list files.')
    parser.add_argument('--exts', type=list, default=['.jpeg','.jpg'],
        help='list of acceptable image extensions.')
    parser.add_argument('--chunks', type=int, default=1, help='number of chunks.')
    parser.add_argument('--train_ratio', type=float, default=1.0,
        help='Percent of images to use for training.')
    parser.add_argument('--recursive', type=bool, default=False,
        help='If true recursively walk through subdirs and assign an unique label\
        to images in each folder. Otherwise only include images in the root folder\
        and give them label 0.')
    args = parser.parse_args()
    
    make_list(args.prefix, args.root, args.recursive,
        args.exts, args.chunks, args.train_ratio)
如果不想了解细节,我们只要看看需要的参数就可以了

root  :图片保存路径(如F:\lfw\  注意最后一个斜杠不能省略

prefix:输出文件的名字,至于后缀我们不用关心,默认是.lst

-----------------------------------------------------------------------------------------

--exts :我们需要搜索的图片格式(如:.jpg)

--chunks: 没太弄明白这个参数的作用(???以后补充)

--train_ration :这个脚本可以把数据的一本转换成训练集,这个参数设置的就比例(默认1.0)

--recursive    :我们下载的数据库,一般都是把一个人的图片放在一个文件夹里,因此数据库一般都是有很多子文件夹,如果我们想访问这样的放在子文件夹里的图片,这个参数必须设置成True

注意:使用以上四个参数是要注意格式 --exts = .jpg

<span style="font-size:18px;">python make_list.py --exts=.jpg --recursive=True F:\lfw\ F:\lfw\image</span>
执行完这个命令会生成以image.lst文件,这就是我们需要的文件!

修改于2016/10/26 

如果你使用上面的命令发现使用--exts参数后,并不能输出正确的结果,

一种可能是你正在使用新版本Mxnet,这样你可以看看我的Mxnet学习系列2这篇博客。

另一种可能是你的make_list.py源码问题,具体怎样修改,可以参考我的Mxnet学习系列0中问题1

第二步:制作二进制文件

Mxnet给我提供了im2rec.cpp文件,使用这个工具必须首先编译im2rec.cpp成im2rec.exe。

有了im2rec.exe后就可以制作我们数据了

一个简单的命令:

<span style="font-size:18px;">im2rec image.lst image_root_dir output.bin resize=256</span>
实例:

<span style="font-size:18px;">im2rec F:\lfw\image_list.lst F:\lfw\ F:\lfw\output_lfw.rec resize=128</span>
resize 是个可选参数,还有几个可选参数,具体的可以看im2rec.cpp.


  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值