深度学习day5(DataLoader的使用)


DataLoader 官方文件查看方法:pytorch官网 -> document -> pytorch -> 搜索 dataloader (搜不到直接左边找torch.utils.data)

import torchvision

# 准备的测试数据集
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

test_data = torchvision.datasets.CIFAR10("./dataset_2",train=False,transform=torchvision.transforms.ToTensor())

test_loader = DataLoader(dataset=test_data,batch_size=64,shuffle=False,num_workers=0,drop_last=True)
# 会返回一个img元组,和一个target元组

# 测试数据集中的第一张图片及target
img,target = test_data[0]
print(img.shape)
print(target)

writer = SummaryWriter("dataloader")
for epoch in range(2):
    step = 0
    for data in test_loader:
        imgs,targets = data
        # print(imgs.shape)
        # print(targets)
        writer.add_images("Epoch: {}".format(epoch),imgs,step)
        step = step + 1

writer.close()

Dataloader 代码的解释:
 

test_loader = DataLoader(dataset=test_data,batch_size=64,shuffle=False,num_workers=0,drop_last=True)

batch_size=64  # 每次抓取64张图片
shuffle=False  # False 每次按顺序抓取; True 每次随即抓取
num_workers=0  # 指定数据加载时使用的进程数(workers的数量)
drop_last=True # 在最后的一组图片数量不够时,False 表示不舍去这一组; True 表示舍去

Dataloader 代码的返回值:
 

for images, labels in test_loader:  
    print(images.shape)  # 输出: torch.Size([64, 3, 32, 32])  
    print(labels.shape)  # 输出: torch.Size([64])  
    # 注意:这里只是展示了如何访问数据和标签的形状,并没有进行任何实际的数据处理或模型评估。  
    break  # 只打印第一个批次的数据,防止无限循环

当你迭代test_loader时,每次迭代返回的值是一个元组(tuple),其中包含两个元素:

  1. images:一个形状为[batch_size, channels, height, width]的张量(Tensor),其中batch_size是每批的样本数(这里是64),channels是通道数(对于CIFAR-10,它是3,代表RGB),heightwidth是图像的高度和宽度(对于CIFAR-10,都是32)。

  2. labels:一个形状为[batch_size]的张量,包含每个样本的类别标签。这些标签是整数,范围从0到9,代表CIFAR-10数据集中的10个类别。

 

如何加入一个任意值: 

"Epoch: {}".format(epoch) 

这里的 format(file_name) 方法调用会将 file_name 变量的值插入到字符串 "{}.txt" 中的 {} 占位符位置。假设 file_name 的值是 "example",那么结果字符串将是 "example.txt"
 

f"{file_name}.txt"

这会在执行时自动将 file_name 的值插入到字符串中,无需显式调用 format() 方法
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值