dataset只知道数据集的位置,dataloader把数据加载到一个神经网络中,从dataset中取数据,参数设置怎么取,取多少。(以扑克牌为例)
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, *, prefetch_factor=2, persistent_workers=False)
batch_size:取多少(一次取多少扑克牌)
shuffle:洗牌-true:牌顺序不一样,FALSE:牌顺序一致
num_workers:加载数据时采用单个还是多个进程。默认0:采用主进程加载
drop——last:有余数时是否舍去
import torchvision
# 准备的测试数据集
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
text_data=torchvision.datasets.CIFAR10('./datasets',train=False,transform=torchvision.transforms.ToTensor())
text_loader=DataLoader(dataset=text_data,batch_size=4, shuffle=True, num_workers=0,drop_last=False)
#测试集中第一张图片及target
img,target=text_data[0]
print(img.shape)
print(target)
writer=SummaryWriter('dataloader')
step=0
for data in text_loader:
imgs,target=data
writer.add_images('text_data',imgs,step)
step=step+1
writer.close()