PyTorch 中的随机透视

请我喝杯咖啡☕

*备忘录:

我的帖子解释了 randomrotation()。我的帖子解释了 randomaffine()。我的帖子解释了 randomhorizo​​ntalflip()。我的帖子解释了 randomverticalflip()。我的帖子解释了 oxfordiiitpet()。

randomperspective() 可以对零个或多个图像进行透视变换,如下所示:

*备忘录:

初始化的第一个参数是 distortion_scale(可选-默认:0.5-类型:int 或 float):*备注:可以进行透视变换。必须是 0 初始化的第二个参数是 p(可选-默认:0.5-类型:int 或 float):*备注:每张图像是否经过透视变换的概率。必须是 0 初始化的第三个参数是插值(optional-default:interpolationmode.bilinear-type:interpolationmode)。初始化的第四个参数是 fill(optional-default:0-type:int, float or tuple/list(int or float)):*备注:它可以改变图像的背景。 *对图像进行透视变换时可以看到背景。元组/列表必须是具有 3 个元素的一维。有第一个参数(必需类型:pil 图像或张量(int))。 *它必须是 3d 张量。v2建议按照v1还是v2使用?我应该使用哪一个?

from torchvision.datasets import OxfordIIITPetfrom torchvision.transforms.v2 import RandomPerspectivefrom torchvision.transforms.functional import InterpolationModerandompers = RandomPerspective()randompers = RandomPerspective(distortion_scale=0.5,                               p=0.5,                               interpolation=InterpolationMode.BILINEAR,                               fill=0)randompers# RandomPerspective(p=0.5,#                   distortion_scale=0.5,#                   interpolation=InterpolationMode.BILINEAR,#                   fill=0)randompers.distortion_scale# 0.5randompers.p# 0.5randompers.interpolation# randompers.fill# 0origin_data = OxfordIIITPet(    root="data",    transform=None    # transform=RandomPerspective(distortion_scale=0)    # transform=RandomPerspective(p=0))dis02p1_data = OxfordIIITPet(    root="data",    transform=RandomPerspective(distortion_scale=0.2, p=1))dis06p1_data = OxfordIIITPet(    root="data",    transform=RandomPerspective(distortion_scale=0.6, p=1))dis1p1_data = OxfordIIITPet(    root="data",    transform=RandomPerspective(distortion_scale=1, p=1))p1_data = OxfordIIITPet(    root="data",    transform=RandomPerspective(p=1))p05_data = OxfordIIITPet(    root="data",    transform=RandomPerspective(p=0.5))p1fillgray_data = OxfordIIITPet(    root="data",    transform=RandomPerspective(p=1, fill=150))p1fillpurple_data = OxfordIIITPet(    root="data",    transform=RandomPerspective(p=1, fill=[160, 32, 240]))import matplotlib.pyplot as pltdef show_images1(data, main_title=None):    plt.figure(figsize=(10, 5))    plt.suptitle(t=main_title, y=0.8, fontsize=14)    for i, (im, _) in zip(range(1, 6), data):        plt.subplot(1, 5, i)        plt.imshow(X=im)        plt.xticks(ticks=[])        plt.yticks(ticks=[])    plt.tight_layout()    plt.show()show_images1(data=origin_data, main_title="origin_data")show_images1(data=dis02p1_data, main_title="dis02p1_data")show_images1(data=dis06p1_data, main_title="dis06p1_data")show_images1(data=dis1p1_data, main_title="dis1p1_data")show_images1(data=p1_data, main_title="p1_data")show_images1(data=p05_data, main_title="p05_data")show_images1(data=p1fillgray_data, main_title="p1fillgray_data")show_images1(data=p1fillpurple_data, main_title="p1fillpurple_data")# ↓ ↓ ↓ ↓ ↓ ↓ The code below is identical to the code above. ↓ ↓ ↓ ↓ ↓ ↓def show_images2(data, main_title=None, d=0.5, prob=0.5, f=0):    plt.figure(figsize=(10, 5))    plt.suptitle(t=main_title, y=0.8, fontsize=14)    for i, (im, _) in zip(range(1, 6), data):        plt.subplot(1, 5, i)        rp = RandomPerspective(distortion_scale=d, p=prob, fill=f) # Here        plt.imshow(X=rp(im)) # Here        plt.xticks(ticks=[])        plt.yticks(ticks=[])    plt.tight_layout()    plt.show()show_images2(data=origin_data, main_title="origin_data", d=0)show_images2(data=origin_data, main_title="dis02p1_data", d=0.2, prob=1)show_images2(data=origin_data, main_title="dis06p1_data", d=0.6, prob=1)show_images2(data=origin_data, main_title="dis1p1_data", d=1, prob=1)show_images2(data=origin_data, main_title="p1_data", prob=1)show_images2(data=origin_data, main_title="p05_data", prob=0.5)show_images2(data=origin_data, main_title="p1fillgray_data", prob=1, f=150)show_images2(data=origin_data, main_title="p1fillpurple_data", prob=1,             f=[160, 32, 240])

image description

image description

image description

image description

image description

image description

image description

image description

以上就是PyTorch 中的随机透视的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1355657.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 19:22:09
下一篇 2025年12月13日 19:22:23

相关推荐

  • 可扩展的 Python 后端:使用 uv、Docker 和预提交构建容器化 FastAPI 应用程序:分步指南

    在当今容器化部署的世界中,高效构建和部署后端应用程序至关重要。 fastapi 已成为创建快速、高性能 api 的最流行的 python 框架之一。为了管理依赖关系,我们还可以利用 uv(包管理器)作为一个方便的工具。 紫外线 我假设您之前已经在本地安装了 uv 和 docker。 现在,我们可以通…

    2025年12月13日
    000
  • 使用 Anthropic 的 Claude Sonnet 生成报告

    Pilar,一家巴西房地产科技公司,联合创始人兼首席技术官Raphael分享了利用Anthropic Claude 3.5 Sonnet生成报告的经验,并比较了两种不同方法的优劣。Pilar为房地产经纪商提供基于低成功费模式的软件和服务,其20人的技术团队不断开发创新产品,例如全新的房地产门户网站P…

    2025年12月13日
    000
  • 构建人工智能销售代理:从语音到推销

    项目背景 EnCode 2025 项目的目标是创建一个高质量、语音自然流畅的AI销售代理,实现与真人近乎无延迟的交互体验。 为此,我构建了一个系统,能够完整处理在线辅导机构的销售对话流程——从问候潜在客户到了解需求并推荐课程。整个过程都以积极、人性化的语气进行,如同一位不知疲倦、状态始终在线的销售人…

    2025年12月13日
    000
  • 探索人工智能工具的世界:彻底改变工作和学习

    ChatGPT:对话式AI助手 简介:ChatGPT是OpenAI打造的先进对话式AI,擅长理解和生成类人文本。它非常适合头脑风暴、撰写邮件、辅助编程和学习。 应用场景: 内容和文章创作代码片段编写和调试各种主题问题的解答 链接:chatgpt GitHub Copilot:编程伙伴 简介:由Ope…

    2025年12月13日
    000
  • 将 Mac OSX 图书亮点导出到 Obsidian Vault 或 Markdown 文件

    readwise 功能强大,但对于跨平台管理笔记和高亮的用户而言,其优势更明显。我主要用于电子书高亮,而使用 readwise 的主要目的就是将这些高亮和笔记导入到 obsidian 中。我习惯在网络上做笔记,使用 obsidian web clipper,甚至在 ipad 上,自从发现 orion…

    2025年12月13日 好文分享
    000
  • 使用 NET Core、Python 和 Azure 微调大型语言模型 (LLM)

    目录 引言微调大型语言模型的必要性解决方案架构环境配置Python 模型训练与微调.NET Core 集成Azure 部署最佳实践总结 一、引言 大型语言模型 (LLM) 以其强大的类人文本理解和生成能力而备受瞩目。然而,许多组织拥有通用模型难以完全捕捉的特定领域知识和专业术语。微调技术允许开发者根…

    2025年12月13日
    000
  • Docker 实践:通过示例 Flask 项目学习 Dockerfile、容器、端口转发

    在本教程中,我们将通过一个示例flask项目,学习如何创建dockerfile、构建docker镜像以及运行docker容器。 如果您对docker还不熟悉,建议您先阅读之前的docker入门教程:https://www.php.cn/link/f5214508a8b8c32ab2889eeb0ed…

    2025年12月13日
    000
  • 构建 BLE 实时 macOS 菜单栏应用程序

    在本教程中,我们将指导您利用bleuio usb ble适配器构建一个实时macos菜单栏应用程序。bleuio是一款功能强大的工具,能简化ble(蓝牙低功耗)应用的开发,非常适合希望轻松构建创新项目的开发者。 macOS菜单栏应用程序提供了一种实时监控和交互数据的便捷方式,无需独立的应用程序窗口。…

    2025年12月13日
    000
  • FastHTML 和 Heroku

    构建 web 应用的新途径:告别 javascript,拥抱 fasthtml! 创建新应用或服务时,往往需要掌握多种工具和框架。Python 开发者通常需要学习 HTML、CSS 和 JavaScript 来构建 Web 应用,这无疑增加了学习曲线。而 Web 开发者则可能发现许多 Python …

    2025年12月13日
    000
  • 使用 wbjdbc 简化 Python-Informix 连接

    引言 Python 应用的 JDBC 连接和 JVM 设置管理常常繁琐,尤其在使用 Informix 等数据库时。wbjdbc,一个 Python 库,应运而生,旨在简化这些任务,自动化环境配置,让您专注于数据交互。本文将介绍 wbjdbc 的核心功能,包括如何自动化连接设置,并提供实际应用示例。 …

    2025年12月13日
    000
  • Python:重构模式

    摄影:帕特里克·何 言简意赅版:这份Python代码表列出了代码坏味道及其对应的设计模式解决方案。 class 代码坏味道: 代码重复 = [ 组合方法, 工厂方法创建多态对象, 链式构造器, 组合替代单多关系, 提取组合, 适配器统一接口, 引入空对象, ] 方法过长 = [ 组合方法, 将累加移…

    2025年12月13日
    000
  • 从电路板到代码:作为一名多语言 Web 开发人员(和电气工程师)如何增强我的编程游戏

    精通多种编程语言的Web开发者,堪称编程界的异类。我们不仅掌握HTML和JavaScript,还像收集精灵宝可梦一样收集编程语言。Java?没问题。Python?当然。Rust?让我们一起挑战吧!如果像我一样拥有电气工程背景,你就会明白同一周内同时调试电路短路和内存泄漏的痛苦。 我的电容和示波器调试…

    2025年12月13日
    000
  • 使用Python的密钥导出函数

    欢迎来到下一个 pikotutorial! 在之前的一篇文章中,我们学习了如何使用 python 执行对称数据加密。最后一个示例是将用户提供的密码直接转换为加密密钥。尽管它有效,但这不是推荐的方法。今天给大家推荐一个密钥导出函数。 密钥导出函数 下面您可以找到如何在 python 中使用 pbkdf…

    好文分享 2025年12月13日
    000
  • 如何使用 Python 从 IP 摄像机捕获实时视频流

    本文介绍如何使用 python 捕获和显示来自 ip 摄像头的实时视频流。我们将利用 requests 库获取图像 url,opencv 处理图像,以及 imutils 调整图像大小。最终程序将持续从摄像头获取视频流并在屏幕上显示。 本文结束时,您将掌握实时捕获和显示网络摄像头视频帧的方法,并能根据…

    2025年12月13日
    000
  • Python 中输入的影响

    Python 3.5 版本引入的类型提示增强了代码可读性,方便多人协作开发。 类型提示的必要性 在强类型语言(如 Java、C++)中,依赖注入(DI)至关重要,但在弱类型语言中难以实现。DI 的核心思想是:类不依赖于具体实现,而是依赖于抽象接口,因为接口比实现更稳定。 错误示范: class Ga…

    2025年12月13日
    000
  • 这个小 Python 脚本提高了对低级编程的理解

    最初发布于 Medium 上的 Level Up Coding。 Python 以其简洁易用而闻名,但对于许多开发者来说,在某个阶段,语言本身的学习曲线会趋于平缓。一旦掌握了常用库和技术,解决问题就变得程式化。然而,学习之旅永无止境,尤其是在深入研究并发和底层编程等高级主题时。 对于希望提升 Pyt…

    2025年12月13日
    000
  • 在 Ubuntu 上安装 PyTorch 和 JupyterLab

    谢谢您的咖啡☕!以下是经过润色后的文本,在保持原意的基础上,对语句进行了调整,并保留了图片的原始格式: 升级Ubuntu系统并配置Python环境: 首先,更新您的Ubuntu系统: sudo apt update && sudo apt -y upgrade 确认Python版本:…

    2025年12月13日
    000
  • 使用 Python 和 AWS 构建实时天气数据收集系统

    在数据驱动的决策时代,天气数据已成为企业和个人不可或缺的资源。无论是物流、农业还是旅游规划,实时天气数据采集系统都能提供宝贵的参考依据。本文将逐步指导您如何利用python、openweather api和aws s3构建一个高效的天气数据采集系统。 项目概述 本项目将演示如何: 使用OpenWea…

    2025年12月13日 好文分享
    000
  • 现代化 HyperGraph 的 CLI:迈向更好架构的旅程

    Hypergraph,我的个人知识管理系统项目,旨在整合点对点网络、范畴论和高级语言模型于一体。目前仍处于早期开发阶段,但其目标是革新集体知识的组织、共享和发展方式,实现真正的去中心化协作,同时保障个人自主权和隐私。 该系统正构建一个复杂的服务层,包含分布式状态管理、事件处理和P2P基础设施。 在H…

    2025年12月13日
    000
  • 攀登深度优先搜索之山,《代码来临》第 10 天

    深入解析第十天难题:多路径深度优先搜索 第十天难题延续了第六天的二维网格模式,但挑战升级为寻找多条路径。本文将详细阐述如何巧妙运用深度优先搜索算法(DFS)解决此问题。 copilot提供的AI拼图插图 地图用一个字典表示,键为(x, y)坐标,值为该点的高度(0-9,9为峰值)。以下代码实现了地图…

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信