Combines a dataset and a sampler, and provides an iterable over the given dataset.:
torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None,batch_sampler=None, num_workers=0, collate_fn=None,pin_memory=False, drop_last=False, timeout=0,worker_init_fn=None)
如果设置为多进程读取数据,那么就会采用队列的方式来读,如果不是采用多进程来读取数据,那么就采用普通方式来读。
#案例 from https://blog.csdn.net/weixin_43981621/article/details/119685671
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
# 准备的测试数据集 数据放在了CIFAR10文件夹下
test_data = torchvision.datasets.CIFAR10("./CIFAR10", train=False, transform=torchvision.transforms.ToTensor()
)test_loader = DataLoader(dataset=test_data, batch_size=4, shuffle=True, num_workers=0, drop_last=False
)
# 测试数据集中第一张图片及target
img, target = test_data[0]
print(img.shape)
print(target)# 输出
torch.Size([3, 32, 32]) # 3表示图像是RGB通道的,32*32的尺寸
3 # 3表示图像的类别是3
# 设置参数batch_size=4时,每次取了4张照片,并获得4个targets标签。
# 在定义test_loader时,设置了batch_size=4,表示一次性从数据集中取出4个数据
for data in test_loader:imgs, targets = dataprint(imgs.shape)print(targets)# 输出
torch.Size([4, 3, 32, 32]) # 4 :batch_size = 4, RGB通道,H,W
tensor([8, 9, 1, 0]) # 表示一次性取出的4张图像的target信息
慢慢的将该数据读取器给其搞定,慢慢的将其整理完整都行啦的样子与打算。