MXNET笔记(三)Data Iterator

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)

你可能感兴趣的:(MXNET笔记(三)Data Iterator)