Task 2 数据读取与数据扩增

2020-05-23  本文已影响0人  专注挖坑的汪

学习目标

读代码

SVHNDataset
SVHNDataset 继承Dataset
实现__getitem__和__len__函数 是让这个类 能通过索引进行操作
实现序列的协议
img_path 是一个列表 其中每个元素是每张图片的路径
img_label 也是一个列表,其中每个元素是图片相对应的标签
transform 就是一个torchvision.transforms对象,用于对图片进行处理
getitem函数里面,首先打开第index个图片(convert RGB我觉得是冗余的代码)
如果有transform的要求就对图像就行transform变换
lbl是将相应的标签转成np.array然后对标签进行增加额外标签,因为我们要将不定长的数字统一视作相同长度的数字
lbl = list(lbl) + (5 - len(lbl)) * [10] 就是将所有的数字看作是长度为5的数字 其中额外的数字记为10 读取数据

glob.glob作用是返回所有匹配的文件路径列表,将mchar_train所有png文件的文件名 存到train_path的列表中
train_label 是train_json中键为label的值组成的列表


构造dataset

transform有很多种变换处理,在官网上查手册就可以了

train_loader = torch.utils.data.DataLoader(data,batch_size=10,shuffle=False,num_workers=2)
这个是将dataset封装成dataloader,多的功能就是一次进行批量读取,batch_size指定一个批量中有多少数据,num_workers 是多进程读取,我的电脑用num_workers=2会报错,改成0就解决了

上一篇 下一篇

猜你喜欢

热点阅读