课程笔记:transforms

17 篇文章 0 订阅
订阅专栏

torchvision:
torchvision是pytorch中的计算机视觉工具包
三个主要的模块:
1)transforms模块:提供常用的图像预处理方法
2)datasets:提供常用的公开数据集的dataset
3)model:提供大量常用的预训练模型
在这里插入图片描述
transforms
对图片进行增强是为了提高模型的泛化能力
在这里插入图片描述
transforms是在dataset中的__getitem__中调用的
在这里插入图片描述
在这里插入图片描述
transforms.Normalize: 比较常用的预处理方法
逐通道的对图像进行标准化
transforms中的normalize实际是运用了functional中的normalize
原因:对数据进行标准化后可以加快模型的收敛
在这里插入图片描述
把数据进行标准化会加速模型的收敛,标准化为均值为0,标准差为1的数据。
当数据分布几乎为0均值的分布时,模型可以很快收敛,达到一个很低的loss值。
当数据均值不在0的附近,而模型初始化都是0均值的,慢慢找到分界平面,迭代更新过程较慢。

数据增强
数据增强又称为数据增广,数据扩增,对训练集进行变换,使训练集更丰富,从而提高模型的泛化能力

transform_invert函数是对transform进行逆操作,使得我们可以观察到模型输入的数据是什么样的(因为数据进行transform后,转换成张量的形式,可能是一些浮点的数据,无法可视化,因此需要transform_invert对transform进行反操作,将张量的数据变换成PILimage,我们就可以可视化)

def transform_invert(img_, transform_train):
    """
    将data 进行反transfrom操作
    :param img_: tensor
    :param transform_train: torchvision.transforms
    :return: PIL image
    """
    if 'Normalize' in str(transform_train):
        norm_transform = list(filter(lambda x: 					isinstance(x, transforms.Normalize), transform_train.transforms))
        mean = torch.tensor(norm_transform[0].mean, dtype=img_.dtype, device=img_.device)
        std = torch.tensor(norm_transform[0].std, dtype=img_.dtype, device=img_.device)
        img_.mul_(std[:, None, None]).add_(mean[:, None, None])

    img_ = img_.transpose(0, 2).transpose(0, 1)  # C*H*W --> H*W*C
    if 'ToTensor' in str(transform_train) or img_.max() < 1:
        img_ = img_.detach().numpy() * 255

    if img_.shape[2] == 3:
        img_ = Image.fromarray(img_.astype('uint8')).convert('RGB')
    elif img_.shape[2] == 1:
        img_ = Image.fromarray(img_.astype('uint8').squeeze())
    else:
        raise Exception("Invalid img shape, expected 1 or 3 in axis 2, but got {}!".format(img_.shape[2]) )

    return img_

for epoch in range(MAX_EPOCH):
    for i, data in enumerate(train_loader):

        inputs, labels = data   # B C H W

        img_tensor = inputs[0, ...]     # C H W
        img = transform_invert(img_tensor, train_transform) # transform_invert用来对transform进行逆操作,使我们可以观察到模型的输入数据是长什么样的
        plt.imshow(img)
        plt.show()
        plt.pause(0.5)
        plt.close()

裁剪(crop)

1.transforms.CenterCrop(从图像的中心裁剪)
在这里插入图片描述

train_transform = transforms.Compose([
	transforms.CenterCrop(196)
	# 转为tensor,并归一化为0-1之间
	transforms.ToTensor(),
    transforms.Normalize(norm_mean, norm_std)])

2.transforms.RandomCrop(随机裁剪)
这里的随机值的位置的随机,不一定从中心、左上角、右下角这样去裁剪,是随机位置的裁剪
在这里插入图片描述

train_transform = transforms.Compose([
    transforms.RandomCrop(224, padding=16),
	transforms.ToTensor(),
    transforms.Normalize(norm_mean, norm_std)])

在这里插入图片描述
3.RandomResizedCrop
插值方法:(由于裁剪后的图像可能小于所需的图片尺寸,故需要插值)
NEAREST(最近邻插值)
BILINEAR(双线性插值)
BICUBIC(双三次插值)
在这里插入图片描述

train_transform = transforms.Compose([
    transforms.RandomResizedCrop(size=224, scale=(0.5, 0.5)),
	transforms.ToTensor(),
    transforms.Normalize(norm_mean, norm_std)])

4.FiveCrop(从左上角、左下角、右上角、右下角和中心裁剪出5张图片)
5.TenCrop(从刚刚裁剪的5张图像进行水平或者垂直镜像得到10张图片)
在这里插入图片描述

train_transform = transforms.Compose([
    transforms.FiveCrop(112),
    transforms.Lambda(lambda crops: torch.stack([transforms.ToTensor()(crop) 
train_transform = transforms.Compose([
    transforms.TenCrop(112, vertical_flip=False),
    transforms.Lambda(lambda crops: torch.stack([transforms.ToTensor()(crop) 

翻转(Flip)

在这里插入图片描述

train_transform = transforms.Compose([
    transforms.RandomHorizontalFlip(p=1),
    transforms.ToTensor(),
        transforms.Normalize(norm_mean, norm_std)]),

旋转(rotation)

在这里插入图片描述

图像变换

1.Pad
在这里插入图片描述

transforms.Pad(padding=32, fill=(255, 0, 0), padding_mode='constant'),

2.ColorJitter
在图像增强方法中经常使用的,尤其是自然图像,对色彩会有些偏差
在这里插入图片描述

3.Grayscale
4.RandomGrayscale(灰度的调整)
Grayscale是RandomGrayscale的特例,概率为1
在这里插入图片描述
5.RadomAffine
对图像进行空间几何变换
在这里插入图片描述
在这里插入图片描述
6.遮挡
在这里插入图片描述
7.transforms.Lambda
由于TenCrop返回的是tuple的形式,而transform的输入输出通常是PILimage或tensor的形式
crops是TenCrop的输出,长度为10的tuple,每一个元素是PILimage
transforms.Lambda返回的是4维张量
在这里插入图片描述

Transform Operation

对transform的选择操作
在这里插入图片描述

自定义transform方法

call函数:类的实例能被调用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述
在这里插入图片描述

【小土堆】Pytorch学习笔记_P12/P13_常用的transforms
qq_40979183的博客
03-21 182
​ # 课程链接 PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili # 笔记内容 (1)P12_常见的Transforms(一) (2)P13_常见的Transforms(二) ​
pytorch归一化
开飞机的小毛驴儿
02-16 4832
在pytorch框架下训练网络的时候,经常会使用transforms.Normalize(...)对输入图像进行归一化,但有时候也会面临这样的场景,需要归一化即把输出返回到特定范围,该如何实现呢?参考https://discuss.pytorch.org/t/simple-way-to-inverse-transform-normalization/4821,我写了一个针对单通道图像进行归一化...
Pytorch框架学习(6)——transforms与normalize
aidanmo的博客
01-28 1万+
图像预处理Transforms与normalize 文章目录图像预处理Transforms与normalize1. transforms运行机制2. 数据标准化——transforms.normalize 1. transforms运行机制 torchvision工具包中包含三个主要模块,今天主要学习transforms torchvision.transforms:常用的数据预处理方法,提升...
pytorch初学笔记(四):常见的Transforms使用(ToTensor、Normalize、Resize、Compose、RandomCrop)
CV在读
10-28 1万+
输入(channel,height,width)形式的tensor,并输入每个channel对应的均值和标准差作为参数,函数会利用这两个参数分别将每层标准化(使数据均值为0,方差为1)后输出。为了让归一化结果更加明显,我们创建3个step,并且依次修改不同的mean和std,查看对应结果。该方法的功能类似于在类中重载 () 运算符,使得类实例对象可以像调用普通函数那样,如果我们的输入在[0,1]之间,经过归一化之后结果即可在[-1 , 1]之间。结果如下,可以看到经过归一化后的图片产生了明显的变化。
Pytorch框架学习路径(九:transforms图像增强(一))
源仔
06-05 1273
Pytorch框架学习路径(一:张量简介与创建) Pytorch框架学习路径(二:张量操作) Pytorch框架学习路径(三:线性回归) Pytorch框架学习路径(四:计算图与动态图机制) Pytorch框架学习路径(五:autograd与逻辑回归) Pytorch框架学习路径(七:数据读取机制DataLoader与Dataset) Pytorch框架学习路径(八:图像预处理——transforms) 1、norm_transform得到的是什么? 如果大家不太懂函数、函数、函数的情况下,可以通过下述、、
pytorch —— transforms图像增强(一)
然后就去远行
11-21 6113
1、数据增强(data augmentation) 数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力。 在中学阶段就已经接触过数据增强的概念,看一个例子,高中的五年高考三年模拟,假设学生是一个模型,五年高考真题是一个训练集,当年高考题是一个验证集,用来验证学习模型的学习能力和效果。对于这个例子怎么做数据增强呢?就是对历年的高考题的知识点进行分析和提炼,...
PyTorch 学习笔记 transforms的二十二个方法transforms用法非常详细)_pytorch transform
2401_84166306的博客
05-06 859
Sn)对于n通道,此变换将标准化输入的每个通道,torch.*Tensor即 input[channel] = (input[channel] - mean[channel]) / std[channel]功能:将PIL Image或者 ndarray 转换为tensor,并且归一化至[0-1] 注意事项:归一化至[0-1]是直接除以255,若自己的ndarray数据尺度有变化,则需要自行修改。将原始图像大小变成随机大小(默认值:是原始图像的0.08到1.0倍)和随机宽高比(默认值:3/4到4/3倍)。
飞桨领航团AI达人创造营课程笔记Lesson_3:深度学习模型训练和关键参数调优详解
OPMC_Adsp的博客
07-30 1496
飞桨领航团Lesson_3:深度学习模型训练和关键参数调优详解一级目录二级目录三级目录 一级目录 二级目录 三级目录
《Pytorch深度学习实践》课程合集(刘二大人)笔记
竦貊的博客
05-30 4915
2 线性模型 深度学习步骤 数据集 —— 拿到的训练集,要分成两部分,训练集,交叉验证集 和 测试集 模型 训练 推理 ML常用损失函数
独家 | kaggle季军新手笔记:利用fast.ai对油棕人工林图像进行快速分类(附代码)...
数据派THU
05-21 926
作者:Mercy Markus翻译:陈之炎校对:丁楠雅本文约3700字,建议阅读10+分钟。一支深度学习的新手队如何在kaggle竞赛中获得第三名?图:亚历山大·纳格斯塔...
[PyTorch 学习笔记] 2.3 二十二种 transforms 图片数据预处理方法
张贤的博客
08-27 2826
本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson2/transforms/ 这篇主要分为几个部分介绍 transforms: 裁剪 旋转和翻转 图像变换 transforms 方法操作 自定义 transforms 方法 最后是数据增强的实战:对人民币二分类实验进行数增强。 由于图片经过 transform 操作之后是 tensor,像素值在 0~1 之间,并且标准差和方差不是正常图片的。所以定义了tran.
4.3 pytorch数据预处理:transforms图像增强方法
liupc的学习笔记
09-18 9265
一、数据增强概述 二、数据增强方法:裁剪 三、数据增强方法:翻转和旋转 四、 一、数据增强概述 我们来看图片中的数据增强是怎么样的。 左边的图像可以增强得到右边的图片,供模型训练。模型见过更多更丰富的样本,从而提高模型的泛化能力。 下面开始学习具体的数据增强方法。 二、裁剪 ...
torchvision中给出的归一化方法transforms.Normalize()的形参理解与坑—拓展:反归一化
乄洛尘
06-13 4699
转载于:https://blog.csdn.net/qq_42079689/article/details/102574358 参考:《动手学深度学习》(Pytorch版) 作者在这里讲解了transforms.Normalize()的原理:transforms.Normalize( mean = (0.5,0.5,0.5), std = (0.5,0.5,0.5) )并不是指将张量的均值和标准差设为0.5,而是做这么一个运算:输入的每个channel做 ( [0, 1] - mean(0.5) )/ st
pytorch中的transforms.ToTensor和transforms.Normalize理解
秃头小苏的博客
04-17 9256
  🍊作者简介:秃头小苏,致力于用最通俗的语言描述问题 🍊往期回顾:卡尔曼滤波系列1——卡尔曼滤波    张氏标定法原理详解 🍊近期目标:拥有5000粉丝 🍊支持小苏:点赞👍🏼、收藏⭐、留言📩 文章目录pytorch中的transforms.ToTensor和transforms.Normalize理解🌴transforms.ToTensor🌵transforms.Normalize🌵 pytorch中的transforms.ToTensor和transforms.Normali
torchvision中Transform的normalize参数含义
律己且好学,才能保证不坠入愤世嫉俗之列。
06-15 2万+
比如原来的tensor是三个维度的,值在0到1之间,经过以下变换之后就到了-1到1区间。 transforms.Normalize((.5,.5,.5),(.5,.5,.5)) transforms的源码中解释: input[channel] = (input[channel] - mean[channel]) / std[channel] 假设你数据的范围是图片的数据范围四[0,1],那么如果...
深度学习——图片预处理(transforms.CenterCrop())
weixin_73223851的博客
08-01 680
那么就是剪裁出来的图片大小就是256*256,剪裁出来的图片中心就是原来图片的中心。上述函数的意思是对要处理的图片进行中心剪裁,其中size是我们想要的图片尺寸。
transforms.Normalize()
热门推荐
qimo601的专栏
09-20 2万+
transforms.Normalize:数据标准化,即均值为0,标准差为1。
PyTorch图像处理器torchvision.ToTensor-归一化
weixin_42535423的博客
08-22 4761
在看这一片博客之前,需要先浏览以下我的上一篇博客 import torchvision.transforms as transforms import numpy as np import torch import cv2 from matplotlib import pyplot as plt import matplotlib.image as imgplt img_path = “1.jpg” transforms.ToTensor() transform1 = transforms.Compose(
【深度学习】transforms图像预处理操作
weixin_46274756的博客
11-10 2058
【深度学习】transforms图像预处理操作
x:transforms.Compose(
最新发布
09-19
`x:Transforms.Compose`是Microsoft XAML(一种用于创建用户界面的框架)中的一个功能,它允许你在XAML中将多个转换操作组合成一个复合变换。在WPF (Windows Presentation Foundation) 或 UWP (Universal Windows ...
写文章

热门文章

  • leecode: 1047. 删除字符串中的所有相邻重复项 7105
  • mAP与coco的评价指标 3217
  • 头部姿态综述总结 3070
  • 笔记:Faster R-CNN系列以及FPN 2495
  • 课程笔记:池化层、线性层与激活函数 2404

分类专栏

  • 目标检测 6篇
  • 找工作 1篇
  • 库的安装 4篇
  • python知识 10篇
  • 头部姿态估计 1篇
  • Javaweb 1篇
  • MyBatis 1篇
  • spring框架 3篇
  • leecode刷题笔记 12篇
  • 数据结构 1篇
  • vision transformer 1篇
  • pytorch课程 17篇
  • 图像分类 1篇
  • CS231n笔记 9篇

最新评论

  • tensorboard:当前数据没被激活

    A9912616: 还是同样的错误

  • tensorboard:当前数据没被激活

    未来可期,期许未来: 你的报错是什么

  • leecode:209. 长度最小的子数组

    一个努力向上的小狼君: 终于明白了~。博主好厉害啊~

  • mAP与coco的评价指标

    xxxxyyyqq: 博主,我想问map是大中小的平均吗?他们有关系吗,不是平均的话,是为什么呢

  • 笔记:YOLOv1-v2-v3

    盼盼编程: 不错

大家在看

  • 从来图代工到云PLM的校企协同研发,浙江阀门代工厂的新球阀斩获130万订单
  • 《南京师大学报(自然科学版)》 236
  • AcWing 3534:矩阵幂 ← 矩阵快速幂
  • Python3基础语法学习笔记 388
  • 用于快速创建机器学习模型的 Web 接口或用户界面的python库:gradio 529

最新文章

  • DilatedEncoder
  • 找工作的英文自我介绍
  • 将数据集的VOC格式转为yolo格式
2023年1篇
2022年27篇
2021年40篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家价值观玻璃钢卡通雕塑生产厂家西宁仿真玻璃钢雕塑厂家望江玻璃钢花盆花器中山市三角玻璃钢雕塑广东节庆商场美陈订购山东商场创意商业美陈福建园林玻璃钢雕塑广东艺术商场美陈供应安庆多彩玻璃钢雕塑生产厂家宁波户外玻璃钢雕塑市场玻璃钢饰件雕塑池州环保玻璃钢雕塑多少钱韶关玻璃钢雕塑规定台州商场开业美陈朔州玻璃钢海豚雕塑商场美陈评分 内容北京玻璃钢卡通雕塑价格玻璃钢排水槽雕塑玻璃钢景观园林雕塑市政玻璃钢雕塑源头直供厂家商场日用百货美陈花溪区玻璃钢雕塑联系方式宜昌玻璃钢树脂雕塑公司香槟色美陈商场花艺商场美陈市场调查河南玻璃钢雕塑厂家哪家好明光玻璃钢花盆花器定制景观小品玻璃钢小鹿雕塑玻璃钢动漫影视人物雕塑陕西定制玻璃钢花盆香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化