PyTorch 之 DataLoader
生活随笔
收集整理的這篇文章主要介紹了
PyTorch 之 DataLoader
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
DataLoader
DataLoader 是 PyTorch 中讀取數(shù)據(jù)的一個(gè)重要接口,該接口定義在 dataloader.py 文件中,該接口的目的: 將自定義的 Dataset 根據(jù) batch size 的大小、是否 shuffle 等封裝成一個(gè) batch size 大小的 Tensor,用于后面的訓(xùn)練。
通過 DataLoader,使得我們?cè)跍?zhǔn)備 mini-batch 時(shí)可以多線程并行處理,這樣可以加快準(zhǔn)備數(shù)據(jù)的速度。
DataLoader 是一個(gè)高效、簡(jiǎn)潔、直觀地網(wǎng)絡(luò)輸入數(shù)據(jù)結(jié)構(gòu),便于使用和擴(kuò)展
- DataLoader 本質(zhì)是一個(gè)可迭代對(duì)象,使用 iter() 訪問,不能使用 next() 訪問
- 使用 iter(dataloader) 返回的是一個(gè)迭代器,然后使用 next() 訪問
- 也可以使用 for features, targets in dataloaders 進(jìn)行可迭代對(duì)象的訪問
- 一般我們實(shí)現(xiàn)一個(gè) datasets 對(duì)象,傳入到 DataLoader 中,然后內(nèi)部使用 yield 返回每一次 batch 的數(shù)據(jù)
DataLoader(object) 的部分參數(shù):
# 傳入的數(shù)據(jù)集 dataset(Dataset)# 每個(gè) batch 有多少個(gè)樣本 batch_size(int, optional)# 在每個(gè) epoch 開始的時(shí)候,對(duì)數(shù)據(jù)進(jìn)行重新排序 shuffle(bool, optional)# 自定義從數(shù)據(jù)集中抽取樣本的策略,如果指定這個(gè)參數(shù),那么 shuffle 必須為 False sampler(Sampler, optional)# 與 sampler 類似,但是一次只返回一個(gè) batch 的 indices(索引),如果指定這個(gè)參數(shù),那么 batch_size, shuffle, sampler, drop_last 就不能再指定了 batch_sampler(Sampler, optional)# 這個(gè)參數(shù)決定有多少進(jìn)程處理數(shù)據(jù)加載,0 意味著所有數(shù)據(jù)都會(huì)被加載到主進(jìn)程,默認(rèn)為0 num_workers(int, optional)# 如果設(shè)置為 True,則最后不足batch_size大小的數(shù)據(jù)會(huì)被丟棄,比如batch_size=64, 而一個(gè)epoch只有100個(gè)樣本,則最后36個(gè)會(huì)被丟棄;如果設(shè)置為False,則最后的batch_size會(huì)小一點(diǎn) drop_last(bool, optional)Reference:
轉(zhuǎn)載于:https://www.cnblogs.com/xxxxxxxxx/p/11428770.html
總結(jié)
以上是生活随笔為你收集整理的PyTorch 之 DataLoader的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信和支付宝中的一些常用方法封装
- 下一篇: PyTorch 之 Datasets