torchvision库在进行图片转换操作中报antialias参数没有显式设置会导致不同图片后端中的值不统一的警告信息

server/2024/11/20 15:36:12/

诸神缄默不语-个人CSDN博文目录

这个警告信息是我在直接调用已经封装好的视觉模型时出现的,位置是:
D:\anaconda3\envs\venv_path\Lib\site-packages\torchvision\transforms\functional.py:1603

警告信息全文是:
UserWarning: The default value of the antialias parameter of all the resizing transforms (Resize(), RandomResizedCrop(), etc.) will change from None to True in v0.17, in order to be consistent across the PIL and Tensor backends. To suppress this warning, directly pass antialias=True (recommended, future default), antialias=None (current default, which means False for Tensors and True for PIL), or antialias=False (only works on Tensors - PIL will still use antialiasing). This also applies if you are using the inference transforms from the models weights: update the call to weights.transforms(antialias=True).

这个警告信息是因为在即将发布的v0.17版本中,torchvision库计划更改所有调整大小变换(如Resize()RandomResizedCrop()等)的antialias参数的默认值。在当前版本中,antialias参数的默认值为None,这意味着对于张量(Tensor)后端,它将被解释为False,而对于PIL(Python Imaging Library)后端,它将被解释为True。为了在未来的版本中保持一致性,torchvision计划将默认值更改为True

即使我没有直接在我的代码中使用antialias参数,只要我使用了torchvision库中的调整大小变换,这个警告信息也会出现,因为这些变换函数内部使用了antialias参数。

要消除这个警告,有几个选项:

  1. 推荐的方法:直接在你的变换函数调用中传递antialias=True。这是推荐的做法,因为它符合未来的默认行为。
transform = torchvision.transforms.Resize(size=(256, 256), antialias=True)
  1. 保持当前行为:如果你想保持当前的行为(即对于张量使用False,对于PIL使用True),你可以传递antialias=None
transform = torchvision.transforms.Resize(size=(256, 256), antialias=None)
  1. 禁用抗锯齿:如果你确定你想在张量后端禁用抗锯齿,你可以传递antialias=False。但请注意,这不会影响PIL后端,它仍然会使用抗锯齿。
transform = torchvision.transforms.Resize(size=(256, 256), antialias=False)

选择哪种方法取决于你的具体需求和你希望如何处理未来的默认值更改。如果你想确保代码在未来版本的torchvision中继续正常工作,推荐使用第一种方法。


http://www.ppmy.cn/server/143493.html

相关文章

Mac 修改默认jdk版本

当前会话生效 这里演示将 Java 17 版本降低到 Java 8 查看已安装的 Java 版本: 在终端(Terminal)中运行以下命令,查看已安装的 Java 版本列表 /usr/libexec/java_home -V设置默认 Java 版本: 找到 Java 8 的安装路…

Java项目实战II基于微信小程序的实习记录(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在当今竞争激烈的就业市场中&#xff0…

解决Xeyes: Error can‘t open display,远程X无法连通问题。

一、问题分析 提前申明: 本次实验使用REHL 8 进行操作! 客户机 A 为X-Client ,即远程X的客户端。 服务机 B 为X-Server,即远程X的服务端。 问题的所有操作均在已经配置好Xorg的前提下进行的,不知道不配置会有什么影响&…

Python模块、迭代器、正则表达式

一、Python模块 在我们编程的时候,先创建一个 .py 文件,这个文件就称之为 一个模块 Module。 使用模块的优点: 模块化编程,多文件编程 1.模块的使用 import语句 想要B.py文件中,使用A.py文件,只需要在…

C++Qt编写校园导航系统

系统要求 (1)有界面, 显示各个景点以及景点之间的路径和路径长度,边上有几个按钮和文本框,在文本框中输入遍历的起点,输入就最短路径的起点和终点, 点击按钮后在界面上用不同颜色标注出路径或铺…

【Pythonr入门第二讲】你好,世界

"Hello, World!" 是一种传统的编程入门示例,通常是程序员学习一门新编程语言时编写的第一个程序。这个程序的目标非常简单:在屏幕上输出 "Hello, World!" 这个字符串。尽管它非常简单,但具有重要的象征意义和实际价值。 …

原生微信小程序中封装一个模拟select 下拉框组件

1.首先在components 里面设置组件名称&#xff1a;van-select&#xff08;随便取名字&#xff09;&#xff1b; 2.新建文件写代码&#xff1a; wxml&#xff1a; <view class"w100 select_all_view"><!-- 标题&#xff0c;可以没有 --><view class…

分布式系统稳定性建设-性能优化篇

分布式系统稳定性建设-性能优化篇 系统稳定性建设是系统工程的核心内容之一。以下是一些重要的方面: 架构设计: 采用模块化、松耦合的架构设计,以提高系统的可扩展性和可维护性。合理划分系统功能模块,降低单个模块的复杂度。定义清晰的接口和数据交换标准,确保各模块之间协调…