MXNet如何用mxnet.image.ImageIter直接导入图像

本文介绍了MXNet中用于图像数据导入的`mxnet.image.ImageIter`类,强调其相较于`mxnet.io.ImageRecordIter`的灵活性和直接读取原图像文件的能力。`ImageIter`允许不生成REC文件,只需LST文件即可,且能自定义预处理操作。通过修改`data.py`脚本,使用`ImageIter`替换`ImageRecordIter`,并利用`CreateAugmenter()`添加预处理步骤。文章预告将深入解析`image.py`中的`CreateAugmenter()`函数。
摘要由CSDN通过智能技术生成

MXNet的图像数据导入模块主要有mxnet.io.ImageRecordIter和mxnet.image.ImageIter两个类,前者主要用来读取.rec格式的数据,后者既可以读.rec格式文件,也可以读原图像数据。这里先介绍mxnet.image.ImageIter这个类,image是个package,脚本image.py可以在~/mxnet/python/mxnet/image.py找到,里面是各个函数和类的具体实现细节。另外,这个包的各个函数的介绍可以看官网地址:http://mxnet.io/api/python/io.html#api-reference

下文提到的~/mxnet就是你从mxnet的官方git上拉取下来的项目的文件名。git地址:https://github.com/dmlc/mxnet

这里先提另外一个函数:mxnet.image.imdecode(buf, **kwargs) # 将图像编码成NDArray格式,我们知道在MXNet框架中,数据存储为NDArray格式,图像数据也是如此,因此mxnet.image中的很多函数的输入输出都是NDArray格式。

mxnet.image.ImageIter是一个非常重要的类。在MXNet中,当你要读入图像数据时,可以用im2rec.py生成lst和rec文件,然后用mxnet.io.ImageRecordIter类来读取rec文件或者用这个mxnet.image.ImageIter类来读取rec文件,但是这个函数和前者相比还能直接读取图像文件,这样就可以不用生成占内存的rec文件了,只需要原图像文件和lst文件即可。另外,在mxnet.io.ImageRecordIter中对于数据的预处理操作都是固定的,不好修改,但是mxnet.image.ImageIter却可以非常灵活地添加各种预处理操作。接下来看看这个类。

mxnet.image.ImageIter(batch_size, data_shape, label_width=1, path_imgrec=None, path_imglist=None,
 path_root=None, path_imgidx=None, shuffle=False, part_index=0, num_parts=1, aug_list=None, imglist=None,
  data_name='data', label_name='softmax_label', **kwargs)
参数:
  ● batch_size (int) – Number of examples per batch.
  ● data_shape (tuple) – Data shape in (channels, height, width) format. For now, only RGB image with 3 channels is supported.
  ● label_width (int, optional) – Number of labels per example. The default label width 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值