Dataloader

1.去PyTorch官网上查找Dataloader的文档

使用测试集的原因是测试集样本数更少,运行起来时间会短一些(指用DataLoader遍历的时间):

python 复制代码
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 = step + 1

writer.close()

drop_last参数

windows系统下如果出现BrokenPipeError的错误,可以考虑将 num_workers设置为0

2.采样器默认是随机采样

python 复制代码
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=True)

# 测试数据中的第一张图片
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()

用TensorBoard展示图片

①注意要用add_images而不是之前用过的add_image

②一定要等到程序运行结束了再在Terminal(终端)里使用tensorboard命令,不然会出现图片加载不全的情况!可以在程序末尾加一行语句来打印程序结束。

相关推荐
每天吃的很好的Ruby6 分钟前
报错ValueError: sampler option is mutually exclusive with shuffle
人工智能·pytorch·python
清水白石0086 分钟前
Python 性能优化全景解析:当 Big O 骗了你——深挖常数开销、内存与解释器黑盒
开发语言·python·性能优化
oi..10 分钟前
python Get/Post请求练习
开发语言·经验分享·笔记·python·程序人生·安全·网络安全
速易达网络28 分钟前
python地图商城可视化系统
python
@fai32 分钟前
PyQt6 Graphic进阶实战:打造一个视觉恒定的可缩放矩形框
python·pyqt
luanma15098033 分钟前
PHP vs C#:30字秒懂两大语言核心差异
android·开发语言·python·php·laravel
Channing Lewis35 分钟前
Python 全局变量调用了一个函数,如何实现每次使用时都运行一次函数获取最新的结果
开发语言·python
浅墨cgz39 分钟前
查找并删除源目录中与目标目录重复的文件
python
云姜.1 小时前
YAML简单使用
python
喵手1 小时前
Python爬虫实战:手把手教你Python 自动化构建志愿服务岗位结构化数据库!
爬虫·python·自动化·数据采集·爬虫实战·零基础python爬虫教学·志愿服务岗位结构数据库打造