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)

 

posted on 2020-02-14 20:51  feihu_h  阅读(324)  评论(0)    收藏  举报

导航