pytorch(6)----数据处理
主要内容
1、 主流的图像数据集
imageNet 、 PASCAL VOC 、COCO、KITTI、Cityscape、Udacity
2、pytorch 数据加载过程
继承Dataset类 ------> 增加数据变换 -------> 继承Dataloade
3、继承torch.utils.data.Dataset 抽象类:重写__len__() 和 __getitem()__函数 可以方便地进行数据集的迭代
4、torchvision.transforms 工具可以对图像进行:缩放、裁剪、随机翻转、填充及张量的归一化。
trandforms.Compose 可以将多个变换整合在一起
5、使用torch.utils.data.Dataloader 进行封装,实现批处理、随机选取等
代码示例
import torch from torch.utils.data import Dataset from torchvision import transforms from torch.utils.data import Dataloader # 继承Dataset类 class my_data(Dataset): def __init__(self,image_path,annotation_path,transform=None): #初始化 读取数据集 def __len__(self): #获取数据集的总大小 def __getitem__(self,id): #对于指定的id,读取该数据并返回 # 实例化 dataset = my_data("image path","annotation path") #实例化my_data类 for data in dataset: print(data) # 添加数据转换 dataset = my_data("image path","annotation path",transforms=transform.Compose([transform.Resize(256)])) # dataloader 是一个可迭代的对象 dataloader = Dataloader(dataset,batch_size=4,shuffle=True,num_workers=4) data_iter = iter(dataloader) for step in range(iters_per_epoch): data = next(data_iter)
浙公网安备 33010602011771号