MXNET笔记(三)Data Iterator

来源:互联网 发布:c语言栈实现四则运算 编辑:程序博客网 时间:2024/06/06 01:26

Iterable

MXNET中读入数据需要使用到数据迭代器(Iter),用户可以使用MXNET提供的一些数据迭代器也可以自己写一个迭代器。虽然一般情况下,我们很多的数据都可以直接读入内存之中,但是面向神经网络进行大数据学习时,学习的样本往往达到了几个GB甚至几十上百个GB。这显然是我们的内存所不能承受的。这样的情况下,我们不得不分批次的将数据送入我们的学习网络之中。迭代器的目的就是在需要数据的时候得到部分数据,然后下次需要的时候能够继续获得后续数据。在网上发现这篇Blog对迭代的概念解释的非常好。

NDarray

numpy中的ndarray存储数据时采用的是一维的形式。二维或者多维数组在numpy中采用“别样”解读的方式来实现。比如,一个30元素可以看作5x6或者3x10

Super

关于super


  dataiter = mx.io.ImageRecordIter(            #rec文件所在位置            path_imgrec="MNIST.rec",            #rec文件中图像大小以及通道数量            data_shape=(3,28,28),            #每个batch中图像的数量            batch_size=100,            #平均图像,如果设置了平均图像,则输入图像将减去该平均图像            mean_img="data/cifar/cifar10_mean.bin",            #随机对图像进行裁剪            rand_crop=True,            #随机对图像进行镜像            rand_mirror=True,            #从rec文件中随机取出图像            shuffle=False,            #预处理线程数            preprocess_threads=4,            #预取缓存            prefetch_buffer=1)
原创粉丝点击