天天看點

torch.utils.data.DataLoader()

資料加載器,結合了資料集和取樣器,并且可以提供多個線程處理資料集。在訓練模型時使用到此函數,用來把訓練資料分成多個小組,此函數每次抛出一組資料。直至把所有的資料都抛出。就是做一個資料的初始化。

torch.utils.data.DataLoader()

生成疊代資料非常友善,請看如下示例:

"""
    批訓練,把資料變成一小批一小批資料進行訓練。
    DataLoader就是用來包裝所使用的資料,每次抛出一批資料
"""
import torch
import torch.utils.data as Data

BATCH_SIZE = 5

x = torch.linspace(1, 10, 10)
y = torch.linspace(10, 1, 10)
# 把資料放在資料庫中
torch_dataset = Data.TensorDataset(x, y)
loader = Data.DataLoader(
    # 從資料庫中每次抽出batch size個樣本
    dataset=torch_dataset,
    batch_size=BATCH_SIZE,
    shuffle=True,
    num_workers=2,
)


def show_batch():
    for epoch in range(3):
        for step, (batch_x, batch_y) in enumerate(loader):
            # training


            print("steop:{}, batch_x:{}, batch_y:{}".format(step, batch_x, batch_y))


if __name__ == '__main__':
    show_batch()           

複制

結果:

torch.utils.data.DataLoader()

我們來看一下變量類型:

torch.utils.data.DataLoader()