數據加載器,結合了數據集和取樣器,並且可以提供多個線程處理數據集。
在訓練模型時使用到此函數,用來把訓練數據分成多個小組,此函數每次拋出一組數據。直至把所有的數據都拋出。就是做一個數據的初始化。
生成迭代數據非常方便,請看如下示例:
""" 批訓練,把數據變成一小批一小批數據進行訓練。 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()
結果:
我們來看一下變量類型: