首页 > 其他分享 >Pytorch笔记|小土堆|P10-13|transforms

Pytorch笔记|小土堆|P10-13|transforms

时间:2024-08-02 15:56:28浏览次数:9  
标签:__ 13 img 传入 P10 Pytorch call transforms trans

transforms对图像进行改造

最靠谱的办法:根据help文件自行学习transforms包含哪些工具(类)以及如何使用
————————————————————————————————————
自学一个类时,应关注:
1、如何使用
各种工具(类)的使用思路:创建对象(实例化)——>传入参数,调用函数(如有__call__函数,则直接调用对象;如果无~,则调用对应的方法)——>返回需要的结果
2、输入、输出、数据类型
怎么看需要传入什么以及在哪传入?如果__init__需要用到的(除了self和设置了默认值的参数),在创建对象时就须传入;如果是其他各种方法用到的,在调用这些方法时再传入。参数的具体说明在“Args”处看
如果没有写输出的数据类型,可以用print(type(img))
3、函数作用是什么

__init__函数和__call__函数:
1、__init__函数:创建一个类的实例化,每当创建一个类的实例对象python解释器都会主动去调用它(使用此函数第一个参数必须为self)
2、__call__函数:使得类实例对象可以像调用普通函数那样使用
__init__是类里面一定会定义的,但call未必
如果类里面包含__call__函数,则可以直接调用对象,括号内传入参数,以使用类里面的方法output = obj(input)
如果类里面无__call__函数,则使用类里面的方法时,需要用.调用方法&传入参数output = obj.method(input)
————————————————————————————————————
transforms里比较常用的类:
1、ToTensor:把图像类型(PIL、ndarray)转为Tensor类型——CHW

import cv2
img = cv2.imread(img_path)

使用cv2.imread读取图片,默认img类型为numpy(使用颜色通道为BGR)

from PIL import Image
img = Image.open(img_path)

使用Image.open读取图片,默认img类型为PIL(使用颜色通道为RGB)

transforms.ToTensor可将上述两种数据类型转为Tensor
为什么需要Tensor数据类型?包装了反向神经网络所需要的一些参数

from PIL import Image
from torchvision import transforms

img_path = r'D:\ai-learning\pytorch\hymenoptera_data\train\bees\16838648_415acd9e3f.jpg'
img = Image.open(img_path)

# 创建对象(实例化)——>传入参数,调用函数——>返回需要的结果
tensor_trans = transforms.ToTensor() # 创建对象
tensor_img = tensor_trans(img) 
# __call__是一个魔术工具,可以把实例对象当做函数调用

2、ToPILImage:把图像类型(ndarray、Tensor)转为PIL类型
3、Normalize:将Tensor数据类型的图像的每个通道归一化(实际上是标准化!),\(output = \frac{input-mean}{std}\)
输入为各通道的mean和std

norm_trans = transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5])
norm_img = norm_trans(tensor_img)

4、Resize
创建对象时需传入resize后的(height,width),调用函数时需传入img,img类型可以为PIL或Tensor

resize_trans = transforms.Resize((256, 256))
resize_img = resize_trans(tensor_img)

5、Compose:把多个工具(类)封装为一个流水线的工具包,需要注意前一个的输出和后一个的输入的类型是否匹配!

compose_trans = transforms.Compose([resize_trans, norm_trans])
compose_img = compose_trans(tensor_img)

6、RandomCrop

标签:__,13,img,传入,P10,Pytorch,call,transforms,trans
From: https://www.cnblogs.com/xjl-ultrasound/p/18338713

相关文章

  • Pytorch笔记|小土堆|P7-8|Tensorboard数据可视化
    Tensorboard数据可视化TensorBoard是一个可视化工具,它可以用来展示网络图、张量的指标变化、张量的分布情况等。它通过运行一个本地服务器,来监听6006端口(可更改)。在浏览器发出请求时,分析训练时记录的数据,绘制训练过程中的图像当前环境下安装:pipinstalltensorboardSummaryWrit......
  • P1006 [NOIP2008 提高组] 传纸条(线性 dp)
    link真的,第一次听懂了闫氏dp分析法,从集合的角度分析首先,两条路径,很朴素的状态表示就是定义\(f[x_1,y_1,x_2,y_2]\)来表示两条路径分别走到当前点的最大值但是,这样状态数量就达到了6.25e7,有点极限tip:动态规划的时间复杂度一般可以表示为状态数量与状态计算量的乘积注意......
  • 题解:CF1301B Motarack's Birthday
    CF1301DTimetoRun题解思维题。分析把一个格子视作一个点,每个点的度数都是偶数,所以这是一张欧拉图。而需要走遍整个方格图,可以证明只要\(k\)不超过\(4nm-2n-2m\)就一定有解。很明显存在很多种方案,这里我用的方案是:从左上角出发,向右走\(m-1\)步到头,再向左走\(m-1\)......
  • 题解:CF1301D Time to Run
    CF1301DTimetoRun题解思维题。分析把一个格子视作一个点,每个点的度数都是偶数,所以这是一张欧拉图。而需要走遍整个方格图,可以证明只要\(k\)不超过\(4nm-2n-2m\)就一定有解。很明显存在很多种方案,这里我用的方案是:从左上角出发,向右走\(m-1\)步到头,再向左走\(m-1\)......
  • 代码随想录算法训练营第二十一天| 39. 组合总和, 40.组合总和II, 131.分割回文串
    今天是回溯算法学习的第二天,主要的学习内容包括:1.组合问题的重复使用2.组合问题的去重3.分割问题的处理方法。39.组合总和题目链接:39.组合总和-力扣(LeetCode)这个组合问题的特点是,集合内的元素可以重复使用。与前面组合问题的区别在于,在每一次回溯中,不是从i+1的位置开......
  • Oracle归档日志异常增长问题的排查过程 转载 : https://blog.csdn.net/3moods/article
    Oracle归档日志是Oracle数据库的重要功能,用于将数据库的重做日志文件(RedoLog)保存到归档日志文件(ArchiveLog)中。归档日志的作用是提供数据库的备份和恢复功能,以及支持数据库的持续性和数据完整性。当数据库处于归档模式时,数据库引擎会将已经写满的重做日志文件保存到归档日志文件......
  • [JLOI2013] 赛车
    对于\(i\),存在\(t>0\),使得对于任意\(j≠i\),有\(k_i+v_it≥k_j+v_jt\)这个时候别去化简了,化简了还没办法做,直接将\(k+vt\)看成一条直线,条件就转化成:如果\(i\)可以获奖,那么就可以找一条直线\(x≥0\),使得这条直线上\(i\)的对应的方程的值最大,不难发现构成了一个半平面交。但是注意这......
  • 代码随想录算法训练营第二十五天|134. 加油站、135. 分发糖果、860.柠檬水找零、406.
    写代码的第二十五天继续贪心!!gogogo!134.加油站思路贪心算法总让我有种脑子知道每次怎么计算,但是写不出来,也想不出贪心贪在哪里了,就只是觉得应该这么做。。。。。本题中大家可以按照自己的计算方法一步一步模拟一下这个过程,然后会发现其实每次都是要计算每站剩余的油量,......
  • 每天五分钟玩转深度学习框架PyTorch:选择函数where和gather
    本文重点如图表所示,这几个方法可以理解为索引函数,有些函数在切片和索引一章进行了简单的介绍,本文将再次进行介绍,温故知新。index_select通过特殊的索引来获取数据index_select,这个这样来理解,第一个参数表示a的第几维度,第二个参数表示获取该维度的哪部分。我们把16,3,28,28看......
  • 洛谷 P1052 [NOIP2005 提高组] 过河
    原题https://www.luogu.com.cn/problem/P1052题目描述在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子,青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:1,⋯,L......