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

news2024/9/25 11:13:02

在这里插入图片描述

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.coloradmin.cn/o/2126195.html

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

相关文章

vue + Lodop 制作可视化设计页面 实现打印设计功能(四)

历史: vue2 Lodop 制作可视化设计页面 实现打印设计功能(一) vue Lodop 制作可视化设计页面 实现打印设计功能(二) vue Lodop 制作可视化设计页面 实现打印设计功能(三) 前言&#xff1a…

必看!实网环境下,合宙Cat.1模组低功耗详细数据

一、背景说明 合宙4G Cat.1模组以低功耗为显著特点,提供了三种功耗模式以适应不同需求。 分别是:常规模式,低功耗模式,PSM模式。 在实际应用中,用户可以根据不同的应用场景和需求,灵活选择合宙4G Cat.1模…

数据结构与算法图论 并查集

前言 写一道并查集的题 判断是否为亲戚 原题目:现在有若干家族图谱关系,给出了一些亲戚关系,如Marrv和Tom是亲戚,Tom和Ben是亲戚等等。从这些信息中,你可以推导出Marry和Ben是亲戚。请写一个程序,对于我…

一文读懂在线学习凸优化技术

一文读懂在线学习凸优化技术 在当今的数据驱动时代,机器学习算法已成为解决复杂问题的关键工具。在线学习凸优化作为机器学习中的一项核心技术,不仅在理论研究上具有重要意义,还在实际应用中展现出巨大的潜力。本文将深入浅出地介绍在线学习…

C++(三)----内存管理

1.C/C内存分布 看下面这个问题(考考你们之前学的咋样): int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] {1, 2, 3, 4};char char2[] "abcd";char* pCh…

【leetcode C++】 动态规划

4. 91 解码方法 题目: 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : "1" -> A "2" -> B ... "25" -> Y "26" -> Z 然而,在 解码 已编码的消息时,你意识到有许多不同的…

数据湖-方案对比

数据湖架构结合了数据湖和数据仓库。虽然它不仅仅是两者之间的简单集成,但其理念是充分发挥两种架构的优势:数据仓库的可靠交易以及数据湖的可扩展性和低成本。 Lakehouse 架构支持管理各种数据类型,例如结构化、半结构化和非结构化数据&…

巧用工具,Vue 集成 medium-zoom 实现图片缩放

文章目录 巧用工具,Vue 集成 medium-zoom 实现图片缩放介绍medium-zoomVue3集成 medium-zoom 示例Vue2集成 medium-zoom 示例进阶 - 可选参数 巧用工具,Vue 集成 medium-zoom 实现图片缩放 在现代网页开发中,为用户提供良好的视觉体验至关重…

爬虫逆向学习(六):补环境过某数四代

声明:本篇文章内容是整理并分享在学习网上各位大佬的优秀知识后的实战与踩坑记录 引用博客: https://blog.csdn.net/shayuchaor/article/details/103629294 https://blog.csdn.net/qq_36291294/article/details/127699273 https://blog.csdn.net/weixin_…

vivo手机已删除的短信还能恢复吗?

虽然现在我们很少使用vivo手机的短信功能,但是我们偶尔还会通过vivo手机短信功能接收一些重要的信息。如果我们在清理垃圾短信的时候误删了vivo手机重要短信,该怎么恢复呢? 方法一:通过vivo云服务恢复 1、确保您已开启vivo云服务…

Go常用正则函数整理

前言 在Go语言中,标准库regexp提供了丰富的API来处理正则表达式,支持编译、匹配、查找、替换等操作。以下是一个Go标准库正则函数的常用大全教程及部分使用示例。 Go标准库常用正则函数 Compile:编译正则表达式,返回一个可用于…

Qt 构建报错 undefined reference to xxx

初次学习使用Qt,在构建时报错。这是个典型报错,熟练vs与c的朋友一眼就可以看出要么是库出问题了,要么是库链接出问题了。那么就可以按照相对明确的方向找问题。 1、确认库与项目配置是否一致。32位还是64位,debug还是release一定…

如何逆转Instagram账号流量减少?4个实用技巧分享

Instagram作为全球十大社媒之一,不仅是个人分享生活的平台,还是跨境卖家进行宣传推广和客户开发的关键工具。在运营Instagram的过程中,稍有不慎就容易出现账号被限流的情况,对于账号状态和运营工作的进行都十分不利。 一、如何判断…

new String(),toString()和Arrays.toString()的区别

下面写了一段代码来展示结果 import javax.sound.midi.Soundbank; import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {String str "abc";System.out.println("str:"str);char[] chars st…

若楠带你初识OpenCV(7) -- 轮廓检测之银行卡号识别

文章目录 银行卡号识别详细流程一、设置参数二、函数准备三、具体步骤1. 得到每个数字的信息2. 银行卡处理3. 找到数字边框4. 模板匹配 总结 银行卡号识别 经过了几篇关于轮廓检测的学习,本篇我们来尝试完成对银行卡号的检测识别: 目标,识别…

获取时间,并将时间按一定的格式输出

一、时间函数 1.获取秒数 CTS 北京时间 2.转换为需要个格式 系统时间的获取: 1.time 获得秒数 time_t time(time_t *t); time_t 类型变量 第一种 准备一个变量 time_t tm; time(&tm) 第二种 tm time(NULL); 功能: 获得1970年到现在的秒数 第一步,先获得秒…

OpenHarmony鸿蒙( Beta5.0)RTSPServer实现播放视频详解

鸿蒙开发往期必看: 一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发! “非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通) “一杯冰美式的时间” 了解鸿蒙HarmonyOS Next应用开发路…

JavaScript基础语法(超详细!)

为什么学JS&#xff1f; 1.页面动态效果 2.表单验证 可以包含在文档中的任何地方&#xff0c;只要保证这些代码在被使用前已读取并加载到内存即可 <script>… </script>网页中引用JavaScript的方式&#xff1a; 1.使用<script>标签外部JS文件 <scrip…

层归一化(201607)

Layer Normalization 层归一化 https://arxiv.org/abs/1607.06450 Abstract Training state-of-the-art, deep neural networks is computationally expensive. One way to reduce the training time is to normalize the activities of the neurons. A recently introduced…

gdb 前端:kdbg 安装使用

文章目录 1. 前言2. kdbg 安装使用2.1 安装 kdbg2.2 使用 kdbg 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. kdbg 安装使用 2.1 安装 kdbg kdbg 是 gdb 的图形化界面的前端&#xff0c;在 …