python读取文件数据生成图像_pytorch ImageFolder和Dataloader加载自制图像数据集

本文介绍了如何使用PyTorch的ImageFolder加载自定义的宝可梦图像数据集,包括数据集的组织结构、ImageFolder的使用方法以及DataLoader的配置,以实现训练集和测试集的迭代。通过调整图像尺寸、随机翻转等预处理,加速模型收敛。最后展示了DataLoader的迭代过程,以及如何与多层神经网络配合进行训练。
摘要由CSDN通过智能技术生成

0 总结

首先对数据集进行文件夹组织处理以适应ImageFolder的要求,然后将ImageFolder的返回结果作为DataLoader的输入,完成训练集数据和测试集数据的迭代。

1.数据集简介

数据集是从网上下载的宝可梦图像数据集,下载后的数据集已按文件夹名称分为5类,每类大约有220~240张图像,格式有jpg, jpeg, png和gif,经过简单的处理,随机从各类中抽取20张组成测试集,训练集和测试集目录一样。文件夹组织如下:

20200402151001299.png

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWdp,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhaWdp,size_16,color_FFFFFF,t_70

2.pytorch加载图像数据集

2.1 torchvision.datasets.ImageFolder()读取图像

可以使用PyTorchDataset和DataLoader来读取数据集,并使用torchvision.transforms对图像进行预处理。 以下是可能的代码示例: ```python import torch from torchvision import transforms from torch.utils.data import Dataset, DataLoader class CustomDataset(Dataset): def __init__(self, image_paths, target_paths, transform=None): self.image_paths = image_paths self.target_paths = target_paths self.transform = transform def __len__(self): return len(self.image_paths) def __getitem__(self, index): image = Image.open(self.image_paths[index]) target = Image.open(self.target_paths[index]) if self.transform: image = self.transform(image) target = self.transform(target) return image, target image_paths = ['path/to/image1', 'path/to/image2', ...] target_paths = ['path/to/target1', 'path/to/target2', ...] # 定义转换,可以添加更多的转换操作 transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]), ]) # 创建数据集数据加载dataset = CustomDataset(image_paths, target_paths, transform=transform) dataloader = DataLoader(dataset, batch_size=32, shuffle=True) ``` 在这里,我们定义了一个名为CustomDataset的自定义数据集,用于读取image_paths和target_paths中的图像并进行预处理。在__getitem__函数中,我们打开图像文件,将它们转换为Tensor并使用transform转换。在这个示例中,我们添加了一个ToTensor转换,它将图像转换为PyTorch张量,并且进行了归一化处理。 最后,我们使用DataLoader数据集转换为批量,并将其打乱,以便随机访问数据集中的元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值