跟着小土堆学习pytorch(三)——常见transform

文章目录

一、Normalize

把图片进行,归一化
output[channel] = (input[channel] - mean[channel]) / std[channel]

这是Normalize,所使用的公式

python 复制代码
print(img_tensor[0][0][0])
trans_norm transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm trans_norm(img_tensor)
print(img_norm[0][0][0])
writer.add_image("Normalize",img_norm)

因为RGB图片是三通道的,所以需要用中括号,在均值、方差处,输入三个参数

二、Resize

如果输入,两个参数,那么直接规定为长和宽,如果只有一个数字,那么就是等比例缩小

python 复制代码
print(img.size)
trans_resize transforms.Resize((512,512))
img PIL -resize -img_resize PIL
img_resize trans_resize(img)
img_resize PIL -totensor -img_resize tensor
img_resize trans_totensor(img_resize)
writer.add_image("Resize",img_resize,0)
print(img_resize)

三、compose

Compose()中的参数需要是一个列表

Python中,列表的表示形式为[数据1,数据2,]

在Compose中,数据需要是transforms类型,所以得到,Compose([transforms参数1,transforms参数2,.)

python 复制代码
# Compose-resize-2
trans_resize_2 = transforms.Resize(512)
# PIL -PIL -tensor
trans_compose transforms.Compose([trans_resize_2,trans_totensor])
img_resize_2 trans_compose(img)
writer.add_image("Resize",img_resize_2,1)

trans_compose transforms.Compose([trans_resize_2,trans_totensor])

着重讲一下这一行

首先明确三点

  1. compose的作用就是把transform组合一起,按照前面处理完,再传完下一个
  2. Resize对象输入PIL,输出也是PIL
  3. totensor对象输入时PIL,输出时tensor
    注意:trans_resize_2,trans_totensor,这是已经把对象实例化了
    所以这一行的代码,是先放入trans_resize_2处理,再放入trans_totensor

四、RandomCrop

嗯,随机裁剪

sequence---序列---()

list---列表----[]

tuple---元组

RandomCrop可以输入的是序列

compose输入的是列表

五、transform

听到现在为止,transform就是对图片进行一个预处理的过程

关注几个点

1.输入和输出的数据类型

2.多看官方文档

3.关注方法需要什么参数

不知道返回值或者返回值的类型

print()

print(type())

最后转化为tensor,用torchvision看一下效果

相关推荐
--fancy2 小时前
股票预测情感分析研究案例分析
python
shughui2 小时前
PyCharm 完整教程(旧版本卸载+旧/新版本下载安装+基础使用,2026最新版附安装包)
ide·python·pycharm
小糖学代码3 小时前
LLM系列:1.python入门:15.JSON 数据处理与操作
开发语言·python·json·aigc
yejqvow123 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
handler013 小时前
从源码到二进制:深度拆解 Linux 下 C 程序的编译与链接全流程
linux·c语言·开发语言·c++·笔记·学习
电子云与长程纠缠3 小时前
UE5 两种方式解决Decal Actor贴花拉伸问题
学习·ue5·游戏引擎
m0_743623923 小时前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python
pele3 小时前
Angular 表单中基于下拉选择动态启用字段必填校验的完整实现
jvm·数据库·python
HHHHH1010HHHHH3 小时前
Redis怎样判断节点是否主观下线_哨兵基于down-after-milliseconds参数的心跳超时判定
jvm·数据库·python
小白学大数据3 小时前
现代Python爬虫开发范式:基于Asyncio的高可用架构实战
开发语言·爬虫·python·架构