pytorch深度学习——DataLoader的使用
·
DataLoader
DataLoader可以从Dataset中取数据,是一个加载器,可以将Dataset看做一副扑克牌,Dataset就是从这一副里面取出任意张牌,怎么取,取多少张都是由DataLoader来决定的
DataLoader的参数很多,但大多都是有默认值的,其中第一个
dataset没有默认值,也就是我们自己决定用哪个Dataset,batch_data决定抓牌的时候抓几张,shuffle为true表示重新洗牌,就是打乱顺序,num_workers用来选择进程数,如果是0表示只用主进程加载,drop_last用来决定最后的牌取不取,比如一个100张,我们选择每次取3张,那100%3=1,最后一张牌取不取?当drop_last为true表示不取
代码示例1:
import torchvision
from torch.utils.data import DataLoader
#准备的测试数据集
test_data = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor())
test_loader = DataLoader(dataset=test_data, batch_size=4, shuffle=True, num_workers=0, drop_last=False)
#测试集中的第一张图片
img, target = test_data[0]
print(img.shape)
print(target)
for data in test_loader:
imgs, targets = data
print(imgs.shape)
print(targets)

代码示例2
import torchvision
from torch.utils.data import DataLoader
#准备的测试数据集
from torch.utils.tensorboard import SummaryWriter
test_data = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor())
test_loader = DataLoader(dataset=test_data, batch_size=64, shuffle=True, num_workers=0, drop_last=False)
#测试集中的第一张图片
img, target = test_data[0]
print(img.shape)
print(target)
writer = SummaryWriter("dataloader")
step = 0
for data in test_loader:
imgs, targets = data
#print(imgs.shape)
#print(targets)
writer.add_images("test_data", imgs, step)
step += 1
writer.close()
运行结果
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐




所有评论(0)