成功解决 TypeError: resize() got an unexpected keyword argument ‘reducing_gap‘

最近用到 CLIPScore计算 text 和 image 相似度,运行以下程序:

import torch
from PIL import Image
from torchvision import transforms
from torchmetrics.multimodal.clip_score import CLIPScoredef prompt_image_cal(prompt_text, image_path):'''判断 prompt 与 image 的相关性, 使用 CLIP Score [0,100],取值越大代表二者越相关'''transform = transforms.Compose([transforms.ToTensor()])image = Image.open(image_path)image_tensor = transform(image) * 255.0image_tensor = torch.clamp(image_tensor, 0, 255)clip_score_fun = CLIPScore(model_name_or_path="/newdata/SD/PMs/clip-vit-large-patch14")clip_score = clip_score_fun(image_tensor, prompt_text)return clip_score.item()

报错如下:

Unused or unrecognized kwargs: padding.
Traceback (most recent call last):File "/newdata/PromptPricing/evaluation.py", line 111, in <module>clip_score = prompt_image_cal(prompt_text, image_path)File "/newdata/PromptPricing/evaluation.py", line 96, in prompt_image_calclip_score = clip_score_fun(image_tensor, prompt_text)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_implreturn forward_call(*input, **kwargs)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/torchmetrics/metric.py", line 302, in forwardself._forward_cache = self._forward_full_state_update(*args, **kwargs)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/torchmetrics/metric.py", line 317, in _forward_full_state_updateself.update(*args, **kwargs)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/torchmetrics/metric.py", line 466, in wrapped_funcupdate(*args, **kwargs)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/torchmetrics/multimodal/clip_score.py", line 133, in updatescore, n_samples = _clip_score_update(images, text, self.model, self.processor)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/torchmetrics/functional/multimodal/clip_score.py", line 67, in _clip_score_updateprocessed_input = processor(text=text, images=[i.cpu() for i in images], return_tensors="pt", padding=True)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/transformers/models/clip/processing_clip.py", line 104, in __call__image_features = self.image_processor(images, return_tensors=return_tensors, **kwargs)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/transformers/image_processing_utils.py", line 551, in __call__return self.preprocess(images, **kwargs)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/transformers/models/clip/image_processing_clip.py", line 319, in preprocessimages = [File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/transformers/models/clip/image_processing_clip.py", line 320, in <listcomp>self.resize(image=image, size=size, resample=resample, input_data_format=input_data_format)File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/transformers/models/clip/image_processing_clip.py", line 187, in resizereturn resize(File "/root/anaconda3/envs/clipiqa/lib/python3.8/site-packages/transformers/image_transforms.py", line 330, in resizeresized_image = image.resize((width, height), resample=resample, reducing_gap=reducing_gap)
TypeError: resize() got an unexpected keyword argument 'reducing_gap'

发现是 transformers 库中的 image_transforms.py 文件出了问题,定位到问题代码行:

resized_image = image.resize((width, height), resample=resample, reducing_gap=reducing_gap)

感觉这种报错像是因为版本问题,一开始卸载了 transformers 库又重装,发现问题仍然存在。后来查看resize函数的主体image,发现是PIL类型的,于是想到可能是pillow库的版本冲突。于是使用pip show pillow查看pillow的版本:

╰─pip show pillow                                                                                                                                                                         1 ↵
Name: Pillow
Version: 6.1.0
Summary: Python Imaging Library (Fork)
Home-page: http://python-pillow.org
Author: Alex Clark (Fork Author)
Author-email: aclark@aclark.net
License: UNKNOWN
Location: /root/anaconda3/envs/clipiqa/lib/python3.8/site-packages
Requires: 
Required-by: clip-score, facexlib, mmcv-full, torchvision

发现版本太旧,于是pip uninstall pillow + pip install pillow 重装,得到当前最新版本的pillow库:

# pip show pillow                                             
Name: pillow
Version: 10.3.0
Summary: Python Imaging Library (Fork)
Home-page: 
Author: 
Author-email: "Jeffrey A. Clark" <aclark@aclark.net>
License: HPND
Location: /root/anaconda3/envs/clipiqa/lib/python3.8/site-packages
Requires: 
Required-by: clip-score, facexlib, mmcv-full, torchvision

再次运行函数,成功✌️

Unused or unrecognized kwargs: padding.
Unused or unrecognized kwargs: padding.
8.029139518737793

PS:不太清楚程序输出的warnings对结果会不会有什么影响,暂时找不到排错的方法,如果有知道的小伙伴还请不吝赐教~

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

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

相关文章

电脑与多台罗克韦尔AB PLC无线通讯的搭建方法分为几步?

在实际系统中&#xff0c;同一个车间里分布多台PLC&#xff0c;通过上位机集中控制。通常所有设备距离在几十米到上百米不等。在有通讯需求的时候&#xff0c;如果布线的话&#xff0c;工程量较大耽误工期&#xff0c;这种情况下比较适合采用无线通信方式。本方案以组态王和2台…

状态机dp(Python)

状态机dp 例题 1&#xff1a;保险箱&#xff08;蓝桥杯14届省赛真题&#xff09; 小蓝有一个保险箱&#xff0c;保险箱上共有 n 位数字。小蓝可以任意调整保险箱上的每个数字&#xff0c;每一次操作可以将其中一位增加 1 或减少 1。当某位原本为 9 或 0 时可能会向前&#xf…

Logistic 回归为什么适用于二分类问题?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ Logistic 回归非常适用于二分类问题的主要原因在于它的核心机制和输出特性。首先&#xff0c;Logistic 回归模型基于概率的理念&#xff0c;通过 Sigmoid 函数转换输入特征的线性组合&#xff0c;将任意…

node部署代理服务器全流程

更多文章访问&#xff1a;node部署代理服务器全流程 – 夜空中最亮的星 启动node代理服务器&#xff1a; 安装nvm: 如何安装nvm使用nvm安装node服务&#xff0c;要求版本14以上安装node中间件&#xff1a;npm install express http-proxy-middlewarenode代码&#xff0c;所有…

Power Automate custom connector创建示例2-1

一、open power automate custom connector list&#xff1a; Microsoft Power Automate 二、edit custom connector info Authentication type have 4 choice. The example I tested requires Authorization validation, so I chose API Key.

东南亚印度越南菲律宾海外网红达人合作:TikTok与YouTube博主共创新风尚

【本篇由言同数字科技有限公司原创】在全球化的时代背景下&#xff0c;海外市场已成为众多品牌争夺的战略高地。而在这个竞争激烈的市场环境中&#xff0c;海外红人营销作为一种有效的品牌推广方式&#xff0c;越来越受到品牌营销者的青睐。本文将探索海外红人营销的方法论&…

Java异步注解@Async不生效的解决方案

问题分析 当我们在方法上加上Async注解时&#xff0c;我们希望此方法会在一个新的线程中执行&#xff0c;从而实现异步操作。但有时我们发现方法仍在主线程中执行&#xff0c;这就是异步注解没有生效&#xff0c;这种情况通常是Spring容器没有正确识别并管理异步方法的问题。 …

每日一读|经典美文摘抄——等待

等待&#xff0c;是我们和时间的一场博弈。我们凭借着智慧和耐力&#xff0c;与未来做一个交换。 等待的不可知性&#xff0c;是一份考验&#xff0c;一天一天&#xff0c;一步一步走向希望&#xff0c;或者失望。 安娜•卡列尼娜呼喊着&#xff0c;“我是人&#xff0c;我要生…

高新技术企业要满足什么条件

企业申报相信大家都有所了解&#xff0c;这是每个企业都需要做的一个项目。但是在近些年来政策的变化影响下。不少人对于相关的细节有了不少的问题。比如说高企申报怎么申报&#xff1f;新企业怎么进行高企申报&#xff1f; 成立年限&#xff1a;企业成立一年以上&#xff0c;…

day8字符串part01

总结 反转问题要活用双指针法&#xff0c;有效减少额外空间的使用 344.反转字符串 ● 541. 反转字符串II ● 卡码网&#xff1a;54.替换数字 ● 151.翻转字符串里的单词 ● 卡码网&#xff1a;55.右旋转字符串 344.反转字符串 /*344. 反转字符串简单 提示编写一个函数&…

VirtuoZo全数字摄影测量系统介绍

VirtuoZo&#xff0c;这一名字的背后蕴含着强大的技术与创新。它是由武汉大学遥感信息工程学院在张祖勋院士的主持下&#xff0c;经过十几年的努力研制成功的全数字化摄影测量系统。该系统不仅仅是一个技术产品&#xff0c;更是中国摄影测量领域的一次重大突破&#xff0c;标志…

jquery 实现倒计时

$(".tableText").click(function () { var time 60; var timer setInterval(function(){ time--; $(".tableText").text("&#xff08;"time"秒&#xff09;重发"); if(time0){ clearI…

工业垃圾打包机液压比例阀放大器

液压打包机的种类很多&#xff0c;我们生活中常见的是废纸打包机、金属打包机、纸箱打包机、玉米茎打包机等。然而&#xff0c;牙齿所有的打包机都有他的不同用法。除了我们生活中常见的以外&#xff0c;还有很多其他种类的打包机。让我介绍几件事。一种是捆 绑式打包机设备&am…

Spring事务:7种传播方式、4种隔离级别

Spring事务的代码承接jdbcTemplate的 文章目录 一、事务1.1 注解配置1.2 注解处理事务1.3 xml处理事务配置 二、传播方式三、事务的隔离级别 一、事务 不可分割的一系列操作。要么 全执行成功。要么 如果一个不成功&#xff0c;则全部不成功。 处理的事务的时候&#xff0c;成…

QT——第一个项目(HelloWorld)

QT——第一个项目&#xff08;HelloWorld&#xff09; 通过控件创建通过代码的方式实现对象树自己观察 我们之前对QT有了一定的了解&#xff0c;今天我们要用QT来写一段经典代码&#xff1a;HelloWorld。如果还没有看过前两次QT初识的小伙伴可以点击这里&#xff1a; https://b…

CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

沉浸又护眼!观影爱好者的最佳CP“星光S1”4月6日开售

据悉&#xff0c;海信激光电视将在4月6日举行线上发布会。除3月已经开售、配备可折叠屏幕的星光S1 100英寸外&#xff0c;本次发布会还将发布星光S1 75英寸、80英寸、88英寸全系版本&#xff0c;为不同用户实现院线级家庭观影体验。 高色域&#xff0c;一直是新一代显示技术的…

Flux 和 Mono区别:并发并行同步异步区别

Flux 和 Mono区别 在工作中&#xff0c;看到导师写项目的时候用到了Flux和Mono。知识盲区了。随后去查了相关的技术信息。很遗憾说的有点太官方了。没有看懂。中午就餐之后&#xff0c;就问导师这两个是什么意思&#xff0c;以及什么区别。废话不多说&#xff0c;总结一下&…

每日一练 | 华为认证真题练习Day213

1、下面哪些OSPF状态迁移是可能的&#xff08;多选&#xff09; A. DOWN->INIT B. DOWN->2-WAY C. LOADING->FULL D. INIT->2-WAY 2、如果需要在某网段上进行快速失效检测机制&#xff0c;则在下列可能实现的配置方法中&#xff0c;描述错误的是:&#xff08;多…

LeetCode - 1702. 修改后的最大二进制字符串

文章目录 解析AC CODE 题目链接&#xff1a;LeetCode - 1702. 修改后的最大二进制字符串 解析 详细题解&#xff1a;贪心&#xff0c;简洁写法&#xff08;Python/Java/C/Go/JS/Rust&#xff09; 思路很牛b。 简单来说我们需要想办法将0配对&#xff0c;将其变为10&#xff0…