dataloader是pytorch之中可以灵活地取出数值的一个相应类,首先需要将自己使用的数据用Dataset封装起来,然后打包成为DataLoader变量进行操作
import torch
from torch.utils.data import Dataset, DataLoader
x = torch.randn(128, 3)
y = torch.randn(128, 1)
# 1. 用Dataset封装数据集,仅做示范,实际可直接用TensorDataset封装
class MyDataset(Dataset):
def __init__(self, x, y):
assert x.size(0)==y.size(0)
self.x, self.y = x, y
#定义初始化变量
def __getitem__(self, idx):
return (self.x[idx], self.y[idx])
#定义每次取出的对应数值
def __len__(self):
return self.x.size(0)
#定义tensor的总长度
# 2. 用DataLoader定义数据批量迭代器
dataset = MyDataset(x,y)
MyDataLoader = DataLoader(dataset=dataset,shuffle=True,batch_size=4)
for data_iter1,data_iter2 in MyDataLoader:
print('data_iter1 = ')
print(data_iter1)
print('data_iter2 = ')
print(data_iter2)