pytorch学习(六)transforms使用

news2024/9/24 15:22:17

1.Transforms可以对训练图像进行预处理,以提高模型的稳定性,提高泛化能力。其中包含:

中心裁剪、数据标准化、缩放、裁剪、旋转、仿射、反转、填充、噪声添加、灰度变换、线性变换、亮度饱和度以及对比度变换等。

所处理的图像用tensorboard进行显示,代码如下:

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

writer = SummaryWriter("logs")
imgPath = "D:/Windows_temp/fengbo/Pictures/win7-006.jpg"
img = Image.open(imgPath)

#第一个 ToTensor
trans_toTensor = transforms.ToTensor()
imgTensor = trans_toTensor(img)
print(imgTensor[0,0,0])
writer.add_image("ToTensor",imgTensor,0)

#第二个 Normalize
trans_norm = transforms.Normalize([0.5,0.5,0.5],[0.5,0.5,0.5])
img_norm = trans_norm(imgTensor) #输入必须是tensor
print(img_norm[0][0][0])

#Resize
print(img.size)
trans_size = transforms.Resize((640,640),interpolation=Image.BILINEAR)
imgResize = trans_size(img)
imgResizeTensor = trans_toTensor(imgResize)
writer.add_image("resize",imgResizeTensor)

#进行多种变换
trans_resize_o= transforms.Resize((512,512))
trans_compose = transforms.Compose([trans_resize_o, trans_toTensor])
imgRT = trans_compose(img)  #先经过resize尺寸改变,再变换成张量
writer.add_image("compose",imgRT,0)

#中心裁剪
trans_centerCrop = transforms.CenterCrop((512,512))
img_centercrop = trans_toTensor(trans_centerCrop(img))
print(img_centercrop.size)
writer.add_image("centerCrop",img_centercrop,0)

#padding 加黑边
transform_pad = transforms.Compose([
    transforms.Pad(padding=100, fill=(0, 0, 0), padding_mode='constant'),
    transforms.ToTensor()
])
# 对图像进行填充
padded_image = transform_pad(img)
writer.add_image("pad",padded_image,0)

#调整亮度 饱和度
transform_jit = transforms.Compose([
    transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.1),
    transforms.ToTensor()
])
# 对图像进行颜色调整
adjusted_image = transform_jit(img)
writer.add_image("jit",adjusted_image,0)

transform_RandomGrayscale = transforms.Compose([
    transforms.RandomGrayscale(p=0.5),
    transforms.ToTensor()
])
# 对图像进行随机灰度转换
RandomGrayscale_image = transform_RandomGrayscale(img)
writer.add_image("RandomGrayscale",RandomGrayscale_image,0)

# 将图像转换为灰度图
transform_Grayscale = transforms.Compose([
    transforms.Grayscale(num_output_channels=1),
    transforms.ToTensor()
])
grayscale_image = transform_Grayscale(img)
writer.add_image("Grayscale",grayscale_image,0)

#随机仿射
transform_RandomAffine = transforms.Compose([
    transforms.RandomAffine(degrees=10, translate=(0.1, 0.1), scale=(0.9, 1.1), shear=10),
    transforms.ToTensor()
])
# 对图像进行随机仿射变换
RandomAffine_image = transform_RandomAffine(img)
writer.add_image("RandomAffine",RandomAffine_image,0)


#随即擦除
"""
将以50%的概率对图像进行随机遮挡,遮挡区域的面积在原图面积的 [0.01, 0.33] 之间随机选择,遮挡区域的长宽比在 [0.3, 3.3] 之间随机选择
"""
transform_RandomErasing = transforms.Compose([
    transforms.RandomErasing(p=0.5, scale=(0.01, 0.33), ratio=(0.3, 3.3)),
    transforms.ToTensor()
])
# 对图像进行随机遮挡
transform_RandomErasing_image = transform_RandomErasing(img)
writer.add_image("RandomErasing",transform_RandomErasing_image,0)

writer.close()

执行完后,使用tensorboard --logdir=logs,得到网址,点击网址,查看结果:

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

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

相关文章

【iOS】APP仿写——网易云音乐

网易云音乐 启动页发现定时器控制轮播图UIButtonConfiguration 发现换头像 我的总结 启动页 这里我的启动页是使用Xcode自带的启动功能,将图片放置在LaunchScreen中即可。这里也可以通过定时器控制,来实现启动的效果 效果图: 这里放一篇大…

基于视觉工具箱和背景差法的行人检测,行走轨迹跟踪,人员行走习惯统计matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 在三维图中,幅度越大,则表示人员更习惯的行走路线。 2.算法运行软件版本 matlab2022a 3.部分核…

【Nacos】Nacos服务注册与发现 心跳检测机制源码解析

在前两篇文章,介绍了springboot的自动配置原理,而nacos的服务注册就依赖自动配置原理。 Nacos Nacos核心功能点 服务注册 :Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端…

【C语言】深入解析希尔排序

文章目录 什么是希尔排序?希尔排序的基本实现代码解释希尔排序的优化希尔排序的性能分析希尔排序的实际应用结论 在C语言编程中,希尔排序是一种高效的排序算法,是插入排序的一种更高效的改进版本。它通过比较相距一定间隔的元素来进行排序&am…

JRT报告打印设计

检验报告单打印一直是个难点问题,JRT开发时候重点考虑了简化检验报告打印,首先采用脚本化方便快速修改报告。然后打印基础解决难点问题,基于JRT打印就可以简化到本文代码的水平,维护方便,结构清晰,上线修改…

【1】Spring Cloud 工程搭建

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 1. 父子工程创建 1.1 创建父工程 1.2 创建子项目 重点关注Spring C…

头发稀疏治疗笔记

1. 前言 今天去中南医院看了一下“头发稀疏”的病症; 2. 头皮检测 2.1 毛发光镜检查 2.2 皮肤镜影像

root的安卓12系统上,如何使apk获得root或者高级别的系统权限?

🏆本文收录于《CSDN问答解答》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&…

JVM--经典的垃圾收集器

1. 垃圾收集器的概念 定义 ; 如果说收集算法是内存回收的方法论,那垃圾收集器就是内存回收的实践者。《Java虚拟机规 范》中对垃圾收集器应该如何实现并没有做出任何规定,因此不同的厂商、不同版本的虚拟机所包含 的垃圾收集器都可能会有很大差别…

Linux journalctl日志太长,如何倒序查看journalctl --reverse,journalctl -xeu

文章目录 需求实验方法一方法二 需求 Linux journalctl日志太长,如何倒序查看 我们通常关心的是最近的日志,但是每次打开日志都是按时间先后顺序显示的,如何倒序查看,请看下面: 实验 方法一 journalctl 命令默认按…

uniapp封装请求拦截器,封装请求拦截和响应拦截的方法

首先我们先看一下uni官方给开发者提供的uni.request用来网络请求的api 1 2 3 4 5 6 7 8 9 uni.request({ url: , method: GET, data: {}, header: {}, success: res > {}, fail: () > {}, complete: () > {} }); 可以看到我们每次请求数据的时候都需…

两种调用方法可以让Contact form 7表单在任意地方显示

Contact form 7是wordpress建站过程中最常用到的插件之一,不过,在Contact form 7调用的时候,有些新手还是搞不太清楚它的调用方法。下面简站wordpress小编,就把常用的两种调用方法,分享给大家: Contact fo…

Open3D 非线性最小二乘法拟合空间球

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键代码 2.1.1定义残差函数 2.1.2拟合球面 2.2完整代码 三、实现效果 3.1原始点云 3.2拟合后点云 3.3结果数据 前期试读,后续会将博客加入下列链接的专栏,欢迎订阅 Open3D点云算法与点…

题解|2023暑期杭电多校02

【原文链接】 (补发)题解|2023暑期杭电多校02 1002.Binary Number 字符串、贪心 题目大意 给定一段长度为 n n n的01串,首位保证为1 任选定其中任意长的一段并将其反转 必须执行以上操作 k k k次,求操作后得到的01串表示的二进…

JAVA.2.运算符

目录 1.算术运算符 小数有可能会不精确,整数除以整数得整数 例子 package demo1;public class Hello {public static void main(String[] args) {System.out.println(12);System.out.println(1-2);System.out.println(5/2);System.out.println(5.0/2);System.out.…

代码随想录移除元素二刷

代码随想录移除元素二刷 leetcode 27 这道题思路的话可以这样去理解,用两个指针,一个慢指针,一个快指针。先让快指针往前面去探路,也就是去遍历数组,遇到不为val的值再去把该值赋值给nums[slow],slow指针1…

3.1、matlab双目相机标定实验

1、双目相机标定原理及流程 双目相机标定是将双目相机系统的内外参数计算出来,从而实现双目视觉中的立体测量和深度感知。标定的目的是确定各个摄像头的内部参数(如焦距、主点、畸变等)和外部参数(如相机位置、朝向等&#xff09…

uni-app 影视类小程序开发从零到一 | 开源项目分享

引言 在数字娱乐时代,移动设备已成为我们生活中不可或缺的一部分,尤其是对于电影爱好者而言,随时随地享受精彩影片成为一种日常需求。爱影家,一款基于 uni-app 开发的影视类小程序,正是为此而生。它不仅提供了丰富的影…

北京交通大学《深度学习》专业课,实验3卷积、空洞卷积、残差神经网络实验

一、实验要求 1. 二维卷积实验(平台课与专业课要求相同) ⚫ 手写二维卷积的实现,并在至少一个数据集上进行实验,从训练时间、预测精 度、Loss变化等角度分析实验结果(最好使用图表展示) ⚫ 使用torch.nn…

基于ffmepg的视频剪辑

1.ffmpeg命令实现视频剪辑 FFmpeg是一个非常强大的视频处理工具,可以用来剪辑视频。以下是一个基本的FFmpeg命令行示例,用于剪辑视频: $ ffmpeg -i ./最后一滴水.mp4 -ss 0:0:20 -t 50 -c copy output.mp4-i ./最后一滴水.mp4 输入文件  …