当前位置: 首页 > article >正文

动手学深度学习(pytorch土堆)-03常见的Transforms

在这里插入图片描述

Compose

transforms.Compose 是 PyTorch 中的一个函数,用于将多个图像变换操作组合在一起,形成一个变换流水线。这样可以将一系列的图像处理操作整合为一个步骤,便于对图像进行批量预处理或增强。

基本用法
transforms.Compose 接受一个列表,列表中的每个元素是一个变换操作。这些操作会按照给定的顺序依次作用在输入的图像上。

  Example:
        >>> transforms.Compose([
        >>>     transforms.CenterCrop(10),
        >>>     transforms.PILToTensor(),
        >>>     transforms.ConvertImageDtype(torch.float),
        >>> ])
#compose
trans_resize1=transforms.Resize((512,512))
trans_compose=transforms.Compose([trans_resize1,tensor_trans])
img_resize_1=trans_compose(img)

ToTensor

将图片变为Tensor数据类型

normalize(归一化)

计算公式:output[channel] = (input[channel] - mean[channel](均值)) / std[channel](标准差)


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("Noramlize",img_norm)
writer.close()

归一化图片前后对比
在这里插入图片描述

Resize

transforms.Resize 是 PyTorch 中 torchvision.transforms 模块的一个变换操作,用于调整图像的大小。它可以将输入图像调整为指定的尺寸,通常用于图像预处理以确保所有输入图像具有相同的尺寸,这对深度学习模型的输入非常重要。

size: 目标尺寸,可以是单个整数或一个元组 (height, width)。
如果是单个整数:将按保持宽高比的方式调整图像,较短的一边将被调整为该值。
如果是元组 (height, width):将直接调整图像为指定的高度和宽度。

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

在这里插入图片描述

整体代码

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

img_path="hymenoptera_data/train/ants/0013035.jpg"
img=Image.open(img_path)
writer=SummaryWriter("logs")
tensor_trans=ToTensor()
tensor_img=tensor_trans(img)#将img图片转换成tensor数据类型的图片
# print(tensor_img)
writer.add_image("img",tensor_img,2)

#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("Noramlize",img_norm,1)
#Resize
print(img.size)
trans_resize=transforms.Resize((512,512))
img_resize =trans_resize(img)
img_resize_tensor=tensor_trans(img_resize)
print(img_resize_tensor)
writer.add_image("img_resize",img_resize_tensor,0)
#compose
trans_resize1=transforms.Resize((512,512))
trans_compose=transforms.Compose([trans_resize1,tensor_trans])
img_resize_1=trans_compose(img)
writer.close()


http://www.kler.cn/news/307292.html

相关文章:

  • 图论篇--代码随想录算法训练营第五十六天打卡| 108. 冗余连接,109. 冗余连接II
  • 【SQL】百题计划:SQL排序Order by的使用。
  • Flutter Error: Type ‘UnmodifiableUint8ListView‘ not found
  • 刷题DAY36
  • 初中生物--5.单细胞生物
  • VuePress搭建文档网站/个人博客(详细配置)主题配置-导航栏配置
  • 【开源免费】基于SpringBoot+Vue.JS企业客户管理系统(JAVA毕业设计)
  • Linux命令:文本处理工具sed详解
  • django中F()和Q()的用法
  • 保姆级离线+windows环境+大模型前端UI安装(二)
  • 基于Spring Boot的停车场管理系统的设计与实现
  • 【STL】 set 与 multiset:基础、操作与应用
  • Vue路由配置、网络请求访问框架项目、element组件介绍学习
  • 数据库连接池与Druid【后端 16】
  • STM32 HAL freertos零基础(十)软件定时器
  • Renesas R7FA8D1BH (Cortex®-M85)控制ISLS29035
  • Unity-Transform类-父子关系
  • 五、(JS)window中的定时器
  • PhotoZoom Pro / Classic 9.0.2激活版安装激活图文教程
  • 栈与队列(c语言实现)
  • GAMES101(2~3作业)
  • 【系统架构设计师】单例模式(Singleton Pattern)
  • PCIe进阶之TL:Common Packet Header Fields TLPs with Data Payloads Rules
  • MYSQL数据库基础篇——MYSQL的安装与使用
  • Go中如何找到哪里依赖了某个module,如何找到所有module的最大GoVersion
  • 【UE5 C++课程系列笔记】02——创建C++类的三种方式
  • 如何快速整理生成python项目依赖的库,提升自动化部署效率
  • jdk相关介绍
  • 【Linux下的cpp】编译调试(gcc、g++、gdb)
  • 工程师 - ACPI和ACPICA的区别