美文网首页
Task 2 数据读取与数据扩增

Task 2 数据读取与数据扩增

作者: 专注挖坑的汪 | 来源:发表于2020-05-23 18:25 被阅读0次

    学习目标

    • python和pytorch进行图像读取
      -- 用Pillow来读取图片和显示图片 --
      这个方法是在单独的一个窗口中显示图片的
      这个方法是在jupyter中显示,用matplotlib画图
      -- 用opencv来读取图片和显示图片--
      这个方法是在单独一个窗口中显示
      在jupyter中显示
    • 理解扩增方法
      扩增方法核心思想就是把图片进行一些变换 同时保证图片中要识别的东西内容不变,比如对不能进行180度的旋转,因为这样会使6变成9

    读代码

    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就解决了

    相关文章

      网友评论

          本文标题:Task 2 数据读取与数据扩增

          本文链接:https://www.haomeiwen.com/subject/hwflahtx.html