zoukankan      html  css  js  c++  java
  • 深度学习与Pytorch入门实战(十一)数据增强

    1. 数据增强

    • 比如,你遇到的一个任务,目前只有小几百的数据,然而目前流行的最先进的神经网络都是成千上万的图片数据,可以通过数据增强来实现。

    • 卷积神经网络非常容易出现过拟合的问题,而数据增强的方法是对抗过拟合问题的一个重要方法。

    常用的数据增强手段:

    • Flip(翻转)

    • Rotation(旋转)

    • Scale(缩放)

    • Random Move&Crop(移位&裁剪)

    • Gaussian Noise(高斯噪声)

    前4个操作都是由torchvision包中的transforms完成的。

    import torch
    from torchvision import datasets, transforms
    
    batch_size = 200
    train_loader = torch.utils.data.DataLoader(
        datasets.MNIST('../data', train=True, download=True,
                       transform=transforms.Compose([
                           transforms.RandomHorizontalFlip(),        # 水平翻转
                           transforms.RandomVerticalFlip(),          # 竖直翻转
                           transforms.RandomRotation(15),            # 旋转,范围-15°~15°
                           transforms.RandomRotation([90, 180]),     # 从二个角度中挑一个旋转(序列len只能为2)
                           transforms.Resize([32, 32]),              # 缩放
                           transforms.RandomCrop([28, 28]),          # 随机裁剪
                           transforms.ToTensor(),
                           # transforms.Normalize((0.1307,), (0.3081,))
                       ])),
        batch_size=batch_size, shuffle=True)
    

    2. 数据增强演示

    import sys
    
    from PIL import Image
    from torchvision import transforms as tfs
    
    # 读入一张图片
    im = Image.open('./1.png')
    im
    

    2.1 水平翻转

    new_im = transforms.RandomHorizontalFlip()(im)           # 水平翻转
    new_im
    

    2.2 随机剪裁

    new_im = transforms.RandomCrop([200, 200])(im)
    new_im
    

  • 相关阅读:
    js 解压缩编码列表
    js 拥有最多糖果
    js 所有奇数长度子数组的和
    js和jquery中有关透明度操作的问题
    python pandas初体验
    NumPy基础及取值操作
    python之pandas简介
    Study Plan The FortyThird day
    Study Plan The ThirtyNine Day
    Study Plan The FortySeventh Day
  • 原文地址:https://www.cnblogs.com/douzujun/p/13360336.html
Copyright © 2011-2022 走看看