【动手学习pytorch笔记】17.数据增广

本文介绍了深度学习中常用的图像增广技术,包括翻转、裁剪、颜色变化等,以增强模型的泛化能力。通过示例展示了不同增广方法对图像的影响,如随机水平和垂直翻转、随机大小裁剪以及调整亮度、对比度、饱和度和色调。最后,演示了如何组合多种图像增广方法以进一步丰富训练数据。
摘要由CSDN通过智能技术生成

图像增广

%matplotlib inline
import torch
import torchvision
from torch import nn
from d2l import torch as d2l

原图

d2l.set_figsize()
img = d2l.Image.open('../img/cat1.jpg')
d2l.plt.imshow(img);

在这里插入图片描述

大多数图像增广方法都具有一定的随机性。为了便于观察图像增广的效果,我们下面定义辅助函数apply。 此函数在输入图像img上多次运行图像增广方法aug并显示所有结果。

def apply(img, aug, num_rows=2, num_cols=4, scale=1.5):
    Y = [aug(img) for _ in range(num_rows * num_cols)]
    d2l.show_images(Y, num_rows, num_cols, scale=scale)

翻转和裁剪

apply(img, torchvision.transforms.RandomHorizontalFlip())

在这里插入图片描述

50%几率左右翻转


apply(img, torchvision.transforms.RandomVerticalFlip())

在这里插入图片描述

50%几率上下翻转


shape_aug = torchvision.transforms.RandomResizedCrop(
    (200, 200), scale=(0.1, 1), ratio=(0.5, 2))
apply(img, shape_aug)

随机裁剪一个面积为原始面积10%到100%的区域,该区域的宽高比从0.5到2之间随机取值。 然后,区域的宽度和高度都被缩放到200像素。

在这里插入图片描述



改变颜色

apply(img, torchvision.transforms.ColorJitter(
    brightness=0.5, contrast=0, saturation=0, hue=0))

在这里插入图片描述


apply(img, torchvision.transforms.ColorJitter(
    brightness=0, contrast=0, saturation=0, hue=0.5))

亮度(brightness)、对比度(contrast)、饱和度(saturation)和色调(hue

在这里插入图片描述



结合多种图像增广方法

augs = torchvision.transforms.Compose([
    torchvision.transforms.RandomHorizontalFlip(), color_aug, shape_aug])
apply(img, augs)

Compose实例来整合上面定义的不同的图像增广方法

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值