当前位置:   article > 正文

深度学习pytorch——数据增强(持续更新)

深度学习pytorch——数据增强(持续更新)

背景介绍

大量的数据是防止过拟合的关键,但是我们如何去获取大量的数据,是自己去拍摄、录制吗?显然这种方式有极高的成本。我们可以对同一张图片进行变换得到多张图片,比如原来只有10张图片,通过变换变成了20张图片,但是并不能无限的增长,也是有限制的,这种方法就叫做数据增强。数据增强的成本基本为0,虽然最后得到的图片效果也没有原图片好,但是有总比没有强,会在一定程度上增强我们的模型。

一张网球照片不同的变换

翻转(Flip)

翻转效果图

代码实现:

  1. train_loader = torch.utils.data.DataLoader(
  2. datasets.MNIST('../data', train=True, download=True,
  3. transform=transforms.Compose([
  4. transforms.RandomHorizontalFlip(), #水平翻转
  5. transforms.RandomVerticalFlip(), #竖直翻转
  6. transforms.ToTensor()
  7. ])),
  8. batch_size=batch_size, shuffle=True)

旋转(Rotate)

旋转效果图

代码实现:

  1. train_loader = torch.utils.data.DataLoader(
  2. datasets.MNIST('../data', train=True, download=True,
  3. transform=transforms.Compose([
  4. transforms.RandomRotation(15), #-15度-15度的角度随机旋转
  5. transforms.RandomRotation([90, 180, 270]), #随机旋转90度,180度,270度
  6. transforms.ToTensor()
  7. ])),
  8. batch_size=batch_size, shuffle=True)

 缩放(Scale)

缩放效果图

代码实现:

  1. train_loader = torch.utils.data.DataLoader(
  2. datasets.MNIST('../data', train=True, download=True,
  3. transform=transforms.Compose([
  4. transforms.Resize([32, 32]), #scale 缩放
  5. transforms.ToTensor()
  6. ])),
  7. batch_size=batch_size, shuffle=True)

裁剪或部分式旋转(Crop Part)

裁剪或部分式旋转效果图

代码实现:

  1. train_loader = torch.utils.data.DataLoader(
  2. datasets.MNIST('../data', train=True, download=True,
  3. transform=transforms.Compose([
  4. transforms.RandomRotation(15), #-15度-15度的角度随机旋转
  5. transforms.RandomRotation([90, 180, 270]), #随机旋转90度,180度,270度
  6. transforms.RandomCrop([28, 28]), #随机裁剪
  7. transforms.ToTensor()
  8. ])),
  9. batch_size=batch_size, shuffle=True)

 加噪声(Noise)

加噪声效果图

参考:课时75 数据增强_哔哩哔哩_bilibili 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/343666
推荐阅读
相关标签
  

闽ICP备14008679号