MXNET筆記(三)Data Iterator

Iterable

MXNET中讀入數(shù)據(jù)需要使用到數(shù)據(jù)迭代器(Iter),用戶可以使用MXNET提供的一些數(shù)據(jù)迭代器也可以自己寫一個迭代器。雖然一般情況下,我們很多的數(shù)據(jù)都可以直接讀入內(nèi)存之中,但是面向神經(jīng)網(wǎng)絡(luò)進(jìn)行大數(shù)據(jù)學(xué)習(xí)時,學(xué)習(xí)的樣本往往達(dá)到了幾個GB甚至幾十上百個GB。這顯然是我們的內(nèi)存所不能承受的。這樣的情況下,我們不得不分批次的將數(shù)據(jù)送入我們的學(xué)習(xí)網(wǎng)絡(luò)之中。迭代器的目的就是在需要數(shù)據(jù)的時候得到部分?jǐn)?shù)據(jù),然后下次需要的時候能夠繼續(xù)獲得后續(xù)數(shù)據(jù)。在網(wǎng)上發(fā)現(xiàn)這篇Blog對迭代的概念解釋的非常好。

NDarray

numpy中的ndarray存儲數(shù)據(jù)時采用的是一維的形式。二維或者多維數(shù)組在numpy中采用“別樣”解讀的方式來實(shí)現(xiàn)。比如,一個30元素可以看作5x6或者3x10

Super

關(guān)于super


  dataiter = mx.io.ImageRecordIter(
            #rec文件所在位置
            path_imgrec="MNIST.rec",
            #rec文件中圖像大小以及通道數(shù)量
            data_shape=(3,28,28),
            #每個batch中圖像的數(shù)量
            batch_size=100,
            #平均圖像,如果設(shè)置了平均圖像,則輸入圖像將減去該平均圖像
            mean_img="data/cifar/cifar10_mean.bin",
            #隨機(jī)對圖像進(jìn)行裁剪
            rand_crop=True,
            #隨機(jī)對圖像進(jìn)行鏡像
            rand_mirror=True,
            #從rec文件中隨機(jī)取出圖像
            shuffle=False,
            #預(yù)處理線程數(shù)
            preprocess_threads=4,
            #預(yù)取緩存
            prefetch_buffer=1)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容