Mxnet学习系列2----如何制作image.rec(新版本)
来源:互联网 发布:fzltchjw gb1 0 mac 编辑:程序博客网 时间:2024/05/01 23:27
看过我Mxnet学习系列1的同学,肯定有些疑惑,这个问题已经讲过了怎么还讲?对于这个问题我也很无奈。上篇博客已经是很久以前写的了,Mxnet的更新还是很快的,没办法只能在写一篇博客。
先说一下新版本(2016/10/26)较老版本的变化在于将老版本中的make_list.py和im2rec.py两个文件的功能合并到im2rec.py一个文件中去了,使用参数--list=True(make_list),默认是--list=False(im2rec.py).
OK!下面简单的说一下如何使用im2rec.py制作自己的数据。使用im2rec.py建议先看一下Mxnet学习系列0。
1、下载lfw,解压
http://pan.baidu.com/s/1eRZomxO
2、制作image_list,让这个折腾里一天,原来是im2rec.py的源码错了,我已经修改,可从此处下载:https://github.com/sunshineInmoon/mxnet/tree/master/tools
定位im2rec.py路径,我的在E:\Mxnet\mxnet\tools,
执行命令python im2rec.py --list=True --exts .jpg --exts .jpeg(也可以是--exts=[.jpg,.jpeg]或者--exts=.jpg --exts=.jpeg)
--recursive=True E:\lfw\imge E:\lfw\
执行后屏幕会输出:
我们会在E:\lfw文件夹下发现多了三个文件imge_train.lst, imge_test.lst, imge_val.lst.这三个文件分别代表训练数据,测试数据,验证数据。
通过学习源码,了解了几个特别参数的作用和原理,这里给大家讲一讲:
Chunk----是把数据分成几块,每一个数据块都能单独生成各自的train.lst,test.lst,
Val.lst三个文件
N = len(image_list) chunk_size = (N + args.chunks - 1) / args.chunks #计算每个块的大小 for i in xrange(args.chunks):#对于每一个块分别计算 chunk = image_list[i * chunk_size:(i + 1) * chunk_size] if args.chunks > 1: str_chunk = '_%d' % i else: str_chunk = '' sep = int(chunk_size * args.train_ratio) sep_test = int(chunk_size * args.test_ratio) write_list(args.prefix + str_chunk + '_test.lst', chunk[:sep_test]) write_list(args.prefix + str_chunk + '_train.lst', chunk[sep_test:sep_test + sep]) write_list(args.prefix + str_chunk + '_val.lst', chunk[sep_test + sep:])
通过上面的源码我们可以看到每一个块的数据按照顺序分层test,train,val三部分比如1,2,3,4,5,6,7,8,9为数据,test_ratio=0.1,train_ratio=0.7,则test=[1],
train=[2,3,4,5,6,7,8],val=[9];
3、将image_list转换成image.rec
真是一波未平一波又起,这一步又出错了。感觉原来挺顺利的,不知为什么新版本这么多问题,还好已经解决了。
如果我们直接使用im2rec.py 在windows会报错,如下:
网上的朋友说是multiprocessing不兼容,我已经改成im2rec_Windows.py,OK!
也可以将im2rec.cc 编译成im2rec.exe,也能成功。在此强烈建议使用im2rec.exe,因为im2rec_Windows.py,不保证百分之百正确,有待验证。需要注意的是im2rec_Windows.py和 im2rec.exe的参数格式不同
Im2rec.exe E:\lfw\image_train.lst E:\lfw image.rec
Im2rec_Windows.py E:\lfw\image E:\lfw
- Mxnet学习系列2----如何制作image.rec(新版本)
- MXNet如何生成.lst文件和.rec文件
- Mxnet学习系列1----制作自己的数据
- mxnet中.rec数据生成
- MXNet 多rec参与训练
- mxnet 训练--如何生成rec 数据 +自己在本机测试的结果
- Mxnet学习系列4----Caffe模型转换成Mxnet模型
- Mxnet学习系列3----网络的可视化
- mxnet系列3-hello,mxnet
- mxnet系列之mxnet介绍
- rec
- mxnet系列教程2-cifar例子
- MXNet学习
- mxnet学习
- Mxnet学习系列0----问题汇总及解决方法
- mxnet系列之-mshadow
- mxnet系列 安装
- Mxnet学习笔记(2)--自定义DataIter
- poj1726 Tango Tango Insurrection
- 荷兰国旗问题(改造快速排序)
- 求两个数a和b的最大公约数
- HelloCharts重新绘图时旧数据残留问题
- JavaScriptCore(2)
- Mxnet学习系列2----如何制作image.rec(新版本)
- LeetCode 84 Largest Rectangle in Histogram
- tomcat集群配置
- EL 表单打印输出
- 关于数据库ceil()函数,floor()函数,round()函数和trunc()函数
- 配置linux服务器做简单的路由器
- 新人学习Struts2笔记(1)
- 在Unity3D里使用DLL
- [gitbook] Android框架分析系列之Android Binder详解