pytorch深度学习——DataLoader的使用
DataLoader可以从Dataset中取数据,是一个加载器,可以将Dataset看做一副扑克牌,Dataset就是从这一副里面取出任意张牌,怎么取,取多少张都是由DataLoader来决定的代码示例1:代码示例2运行结果
·
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()
运行结果
更多推荐






所有评论(0)