Pytorch transforms 的研究

news2024/9/22 5:31:42

绝对路径与相对路径差别

transforms的使用

from torchvision import transforms
from PIL import Image


img_path ="dataset/train/bees/16838648_415acd9e3f.jpg"
img = Image.open(img_path)
tensor_trans = transforms.ToTensor()
tensor_img =tensor_trans(img)
print(tensor_img)

python中 导包写法复习

transforms.ToTensor() 的写法 transforms表示模块 ToTensor 表示函数 
from torchvision import transforms
  • from: 指明我们要从某个包或模块中导入。
  • torchvision: 这是一个包(package),是 PyTorch 生态系统中专门用于计算机视觉任务的库。
  • import: 指明我们要导入什么。
  • transforms: 这是 torchvision 包中的一个模块,专门用于图像转换和数据增强

Transforms 的使用(二)

from torchvision import transforms
from PIL import Image
from torch.utils.tensorboard import  SummaryWriter


img_path ="dataset/train/bees/16838648_415acd9e3f.jpg"
img = Image.open(img_path)

writer = SummaryWriter("logs")

tensor_trans = transforms.ToTensor()
tensor_img =tensor_trans(img)
writer.add_image("Tensor_img",tensor_img)
writer.close()

常见的transform

__call__的作用:

Totensor的使用 :

Normalize归一化的使用:

print(tensor_img[0][0][0])
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm = trans_norm(tensor_img)
print(img_norm[0][0][0])
writer.close()

代码分析

三维均值与标准差

  1. 彩色图像结构:
    大多数彩色图像使用RGB(红、绿、蓝)颜色模型。每个像素由这三个颜色通道的值组成。

  2. 通道独立处理:
    在图像处理和深度学习中,通常会对每个颜色通道独立进行标准化。这意味着每个通道都有自己的均值和标准差。

  3. 三维均值和标准差:

    • 均值:[mean_R, mean_G, mean_B]
    • 标准差:[std_R, std_G, std_B]

    其中,mean_R 和 std_R 分别是红色通道的均值和标准差,以此类推。

标准化公式

def forward(self, tensor: Tensor) -> Tensor: return F.normalize(tensor, self.mean, self.std, self.inplace) 

这里的 F.normalize 是 PyTorch 的函数式接口中的一个函数,它封装了标准化的具体实现。虽然我们在这个类的定义中没有看到具体的计算过程,但是这个标准化公式是 F.normalize 函数内部实现的核心逻辑。

PyTorch 的文档和源码中会详细说明 F.normalize 函数的具体实现。标准化公式 output[channel] = (input[channel] - mean[channel]) / std[channel] 是在 F.normalize 函数内部执行的。

Resize的使用 

print(img.size)
trans_resize = transforms.Resize((512,512))
img_resize = trans_resize(img)
img_resize = tensor_trans(img_resize)
writer.add_image("Resize",img_resize,0)
print(img_resize)

Compose 的使用 :

Compose 将两个函数功能结合

trans_resize_2 = transforms.Resize(512)
trans_compose =  transforms.Compose([trans_resize_2,tensor_trans])
img_resize2 = trans_compose(img)
writer.add_image("Resize2",img_resize2,1)
writer.close()

RandomCrop裁剪:

trans_Randomcrop = transforms.RandomCrop(256)
trans_compose2 = transforms.Compose([trans_Randomcrop,tensor_trans])
for i in range(10):
    img_crop = trans_compose2(img)
    writer.add_image("Randomcrop",img_crop,i)
writer.close()

完整代码 

from torchvision import transforms
from PIL import Image
from torch.utils.tensorboard import  SummaryWriter


img_path ="dataset/train/bees/16838648_415acd9e3f.jpg"
img = Image.open(img_path)

writer = SummaryWriter("logs")

tensor_trans = transforms.ToTensor()
tensor_img =tensor_trans(img)
writer.add_image("Tensor_img",tensor_img)
#print(tensor_img)
#Normalize 归一化
print(tensor_img[0][0][0])
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm = trans_norm(tensor_img)
print(img_norm[0][0][0])
writer.add_image("Normalize",img_norm)
writer.close()

##Resize
print(img.size)
trans_resize = transforms.Resize((512,512))
img_resize = trans_resize(img)
img_resize = tensor_trans(img_resize)
writer.add_image("Resize",img_resize,0)
print(img_resize)

#Compose
trans_resize_2 = transforms.Resize(64)
trans_compose =  transforms.Compose([trans_resize_2,tensor_trans])
img_resize2 = trans_compose(img)
writer.add_image("Resize2",img_resize2,1)
writer.close()
#RandomCrop
trans_Randomcrop = transforms.RandomCrop(256)
trans_compose2 = transforms.Compose([trans_Randomcrop,tensor_trans])
for i in range(10):
    img_crop = trans_compose2(img)
    writer.add_image("Randomcrop",img_crop,i)
writer.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1944999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优选算法之二分查找(上)

目录 一、二分查找 1.题目链接:704. 二分查找 2.题目描述: 3.算法流程: 4.算法代码: 二、在排序数组中查找元素的第一个和最后一个位置 1.题目链接:34. 在排序数组中查找元素的第一个和最后一个位置 2.题目描述…

防爆智能手机如何助力电气行业保驾护航?

在电气行业的智能化转型浪潮中,防爆智能手机以其强大的数据处理能力、实时通讯功能及高度集成的安全特性,正成为保障电力网络稳定运行、预防安全隐患的得力助手。 防爆智能手机在电气行业中发挥着重要的保驾护航作用,主要体现在以下几个方面&…

【性能测试-登录时密码加密存储如何传参】

目的】 登录接口,密码加密传输,开发不做处理的情况下,密码如何加密传输 【方案】 使用前置处理器:JSR223 预处理程序,主要是在执行登录接口前将密码按照加密算法获得对应的加密密码,并传入接口 【说明】前…

天工Godwork AT 5.2.6 GodWork2D 2.1.5 GodWork EOS 2.1实景三维建模软件

天工Godwork AT 5.2.6/GodWork2D 2.1.5/GodWork EOS 2.1实景三维建模软件 获取安装包联系邮箱:2895356150qq.com 本介绍用于学习使用,如有侵权请您联系删除! 1.自主研发的平差技术,平差模块不依赖PATB、Bingo等国外技术 2.采用特征匹配&…

系统架构师考点--设计模式

大家好。今天来总结一下设计模式的相关考点。这部分考点也有可能在论文中出现,这里总结的可能不够全面,大家自己可以翻一下教材好好了解一下。 架构模式:软件设计中的高层决策,例如C/S结构就属于架构模式,架构模式反…

【第5章】Spring Cloud之Nacos服务注册和服务发现

文章目录 前言一、提供者1. 引入依赖2.配置 Nacos Server 地址3. 开启服务注册 二、消费者1. 引入依赖2.配置 Nacos Server 地址3. 开启服务注册 三、服务列表四、服务发现1. 获取服务列表2. 测试2.1 获取所有服务2.2 根据服务名获取服务信息 五、更多配置项总结 前言 本节通过…

mysql对数据库的增删改

目录 DML语句: 增加数据(insert语句) 增加数据(insert into select) 修改数据(update语句) 【where 子句条件】 删除数据(delete语句) 删除数据(trunca…

内网隧道——Earthworm(EW)

文章目录 一、EW介绍二、一层网络2.1 一层正向代理2.2 一层反向代理 三、两层网络3.1 二层正向代理3.2 二层反向代理 一、EW介绍 下载地址:EW 常用的命令格式: 参数作用Ssocksd正向代理Rcsock反向代理客户端Rssocks反向代理服务端Lcx_slave一侧通过反弹…

基于SpringBoot的矩形范围面时空分析-以震中附近历史地震为例

目录 前言 1、分析的必要性 2、分析的紧迫性 一、数据库物理模型及空间分析实现 1、数据库物理模型 2、空间数据库中的空间查询分析 二、Java后台程序开发 1、模型层设计 2、业务层的设计与实现 三、WebGIS功能设计与实现 1、同时展示4幅地图 2、初始化地图 3、展示…

算法日记day 18(二叉树的所有路径|左叶子之和)

一、二叉树的所有路径 题目: 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [1,2,3,null,5] 输出:["1->…

福州高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

随着制造业的转型升级,智能制造已成为行业发展的重要趋势。福州高校大学智能制造实验室作为该领域的重要研究基地,积极响应国家发展战略,不断探索和创新智能制造技术。数字孪生技术作为智能制造领域的前沿技术,通过将物理世界的实…

基于ansible进行运维自动化的研究以及相关的属性

一、ansible-简介 介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点, 实现了批量系统配置、批量程序部署、批量运行命令等功能。 无客户端。 …

基于区块链技术的中药饮片代煎配送服务与监管平台

业务背景 近年来,随着公众对中医药青睐有加,中药代煎服务作为中医药现代化的重要一环,在全国各地蓬勃兴起。鉴于传统煎煮方式的繁琐耗时,医疗机构纷纷转向与第三方中药饮片企业合作,采用集中代煎模式。这些第三方煎药中…

【数据结构】链表(单链表实现 + 详解 + 原码)

🎇🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友…

uni-app AppStore Connect上传拒绝汇总

1.Guideline 2.3.3 - Performance - Accurate Metadata 问题是图片不对,最好是自己截图,然后用香蕉云编 上传图片合成图片 2.Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing 解决办法:在uniapp manifest.json找到 APP常用其他…

LabVIEW汽车动态信号模拟系统

随着汽车工业的快速发展,对汽车电子控制单元(ECU)的测试与仿真需求日益增加。开发了一种基于LabVIEW软件开发的汽车动态信号模拟系统,该系统能有效模拟ECU在实车环境下的工作状态,为ECU的开发和测试提供了一个高效、经…

react中如何mock数据

1.需求说明 因为前后端分离开发项目,就会存在前端静态页面写好了,后端数据接口还没写好;这时候前端就需要自己定义数据来使用。 定义数据有三种方式:直接写死数据、使用mock软件、json-server工具 这里讲解通过json-server工具…

C# 匿名函数与Lambda表达式

本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正 1.匿名函数 在 C# 中,匿名函数是一种没有名称的函数,可以直接在代码中定义和使用 匿名函数主要有两种形式:匿名方法和Lambda 表…

Jetpack Compose多页面跳转示例

示例: 使用Jetpack Compose开发android,实现功能:第1个界面有一个文本输入框输入消费金额,下面有个确定按钮,点击确定按钮后跳转到第2个界面,显示你的消费金额是XX,这个金额来自第1个界面的输入。 实操 使用 Jetpack …

C语言实现顺序结构二叉树-堆

文章目录 🎯引言👓C语言实现顺序结构二叉树-堆1.树的概念与结构1.1概念与结构1.2树的相关术语 2.二叉树2.1概念与结构2.2特殊的二叉树2.2.1满二叉树2.2.2完全二叉树 3.二叉树的存储结构3.1顺序存储3.2链式存储 4.堆的实现4.1堆的概念与结构4.2向上调增算…