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

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

诸神缄默不语-个人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.kler.cn/a/394634.html

相关文章:

  • JavaWeb后端开发知识储备1
  • 大数据新视界 -- 大数据大厂之 Impala 性能飞跃:动态分区调整的策略与方法(上)(21 / 30)
  • 使用etl工具kettle的日常踩坑梳理之二、从Hadoop中导出数据
  • Linux 函数在多个地方被同时调用时,函数中的变量如何管理,确保互不影响
  • 【专题】计算机网络之网络层
  • 数据库SQL——连接表达式(JOIN)图解
  • Android Camera系列(六):MediaCodec视频编码上-编码YUV
  • Asp.NET Core Mvc中一个视图怎么设置多个强数据类型
  • PyQt入门指南五十二 版本控制与协作开发
  • Linux git-bash配置
  • 《深度学习》AlexNet网络
  • 11.14日志
  • vue中重置对象的好使方式(封装好的函数,可直接食用)
  • MATLAB中round函数用法
  • 用接地气的例子趣谈 WWDC 24 全新的 Swift Testing 入门(三)
  • 工程化实战内功修炼测试题
  • 深度学习笔记14-卷积神经网络2
  • C语言实现3D动态爱心图形的绘制与动画效果
  • 抖音小程序蓝海冷门玩法,前期搭建好后期自动变现模式解析!
  • 【IT人物系列】之Spring创始人
  • 计算机网络 (1)互联网的组成
  • AI赋能电商:提升销售效率与用户体验的新引擎
  • 飞腾平台Arm NN软件栈安装使用指南
  • 钉钉小程序 - - - - - overflow无效?
  • APEX高性能减速机MG/MGH系列 高负载应用下的精准动力传输
  • Linux sed 的多个用法