MegEngine 使用小技巧:借助 DataLoader 獲取分批數(shù)據(jù)
在使用 MegEngine 進(jìn)行模型訓(xùn)練時(shí),首先要進(jìn)行的是數(shù)據(jù)加載和預(yù)處理。在此過程中,MegEngine 中的megengine.data模塊(https://www.megengine.org.cn/doc/stable/zh/reference/data.html#module-megengine.data),提供了數(shù)據(jù)分批功能,其內(nèi)部實(shí)現(xiàn)流程如下圖:

通過使用 Dataloader,我們可以方便地對(duì)數(shù)據(jù)進(jìn)行相關(guān)操作,比如設(shè)置 batch_size 以及自定義數(shù)據(jù)預(yù)處理的過程。示例代碼如下:
在上面的代碼中,我們用 ArrayDataset?(https://www.megengine.org.cn/doc/stable/zh/reference/api/megengine.data.dataset.ArrayDataset.html#megengine.data.dataset.ArrayDataset)對(duì) NumPy ndarray 格式的數(shù)據(jù)集進(jìn)行了快速封裝, 接著使用順序采樣器 SequentialSampler(https://www.megengine.org.cn/doc/stable/zh/reference/api/megengine.data.SequentialSampler.html#megengine.data.SequentialSampler) 對(duì) house_dataset 進(jìn)行了采樣, 二者用來作為參數(shù)初始化 DataLoader(https://www.megengine.org.cn/doc/stable/zh/reference/api/megengine.data.DataLoader.html#megengine.data.DataLoader),最終獲取到了一個(gè)可迭代的對(duì)象,每次提供 batch_size 大小的數(shù)據(jù)和標(biāo)記。
我們在上面選定的 batch_size 為 5,樣本容量為 100, 因此可以劃分成 20 批數(shù)據(jù)。
Dataloader 也支持用戶自定義對(duì)數(shù)據(jù)做預(yù)處理操作,而在 MegEngine 中也定義很多圖像處理領(lǐng)域的預(yù)處理方式,如圖像裁剪、翻轉(zhuǎn)等。 更多 DataLoader 功能介紹,見文檔:https://www.megengine.org.cn/doc/stable/zh/user-guide/model-development/data/index.html
附
「MegEngine 使用小技巧」系列文章,重點(diǎn)輸出 MegEngine 及周邊工具的使用技巧,如有催更或投稿,歡迎聯(lián)系我們哦~
技術(shù)交流 QQ 群:1029741705;Bot 微信:megengine-bot
更多 MegEngine 信息獲取,您可以查看:
文檔:https://www.megengine.org.cn/doc/stable/zh/?
深度學(xué)習(xí)框架?MegEngine 官網(wǎng):https://www.megengine.org.cn/
GitHub 項(xiàng)目:https://github.com/MegEngine