Mxnet学习系列2----如何制作image.rec(新版本)
2016-10-26 17:40
295 查看
看过我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
先说一下新版本(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
相关文章推荐
- Wix打包系列(一)如何使用wix制作安装程序
- (译)如何使用cocos2d制作一个滑动图片游戏(Slide Image Game):第一部分
- docker 系列 - Java程序制作Docker Image推荐方案(转载)
- Wix打包系列(一)如何使用wix制作安装程序
- Linux操作系统下如何制作Image映像文件
- Wix打包系列(一)如何使用wix制作安装程序
- 简述如何制作 zTree v3.x 系列的扩展 js 库
- Wix打包系列(一)如何使用wix制作安装程序
- unity3D入门系列十三,如何制作天空盒(SkyBox)(英文)
- C# WinForm开发系列之如何使用panel控件制作左侧导航菜单
- Mxnet学习系列1----制作自己的数据
- (译)如何使用cocos2d制作一个Slide Image Game:第一部分
- Wix打包系列(一)如何使用wix制作安装程序
- 【简单到死系列】用户注册的网页制作+如何用查看元素的方式调适代码
- Wix打包系列(一)如何使用wix制作安装程序
- Wix打包系列(一)如何使用wix制作安装程序
- (译)如何使用cocos2d制作一个Slide Image Game
- webfont应用系列 如何制作图标字体?
- iPhone Development Blog系列: 如何制作服务条例窗口
- Linux操作系统下如何制作Image映像文件