AttributeError: ‘_OpNamespace‘ ‘image‘ object has no attribute ‘read_file‘解决

问题再现

from torchvision.io.image import read_image
img_path = 'border-collie.jpg'
img = read_image(img_path)

报错如下:

WARNING:root:no value was provided for `target_layer`, thus set to 'layer4'.
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
File ~/anaconda3/envs/DVS/lib/python3.8/site-packages/torch/_ops.py:757, in _OpNamespace.__getattr__(self, op_name)756 try:
--> 757     op, overload_names = torch._C._jit_get_operation(qualified_op_name)758 except RuntimeError as e:759     # Turn this into AttributeError so getattr(obj, key, default)760     # works (this is called by TorchScript with __origin__)RuntimeError: No such operator image::read_fileThe above exception was the direct cause of the following exception:AttributeError                            Traceback (most recent call last)
/home/algroup/chenao/RankMatch/CAM.ipynb 单元格 16 in ()1 # Get your input
----> 2 img = read_image(img_path)3 # Preprocess it for your chosen model4 input_tensor = normalize(resize(img, (224, 224)) / 255., [0.485, 0.456, 0.406], [0.229, 0.224, 0.225])File ~/anaconda3/envs/DVS/lib/python3.8/site-packages/torchvision/io/image.py:222, in read_image(path, mode)206 def read_image(path: str, mode: ImageReadMode = ImageReadMode.UNCHANGED) -> torch.Tensor:207     """208     Reads a JPEG or PNG image into a 3 dimensional RGB Tensor.209     Optionally converts the image to the desired format.(...)220         output (Tensor[image_channels, image_height, image_width])221     """
--> 222     data = read_file(path)223     return decode_image(data, mode)File ~/anaconda3/envs/DVS/lib/python3.8/site-packages/torchvision/io/image.py:42, in read_file(path)31 def read_file(path: str) -> torch.Tensor:32     """33     Reads and outputs the bytes contents of a file as a uint8 Tensor34     with one dimension.(...)40         data (Tensor)41     """
---> 42     data = torch.ops.image.read_file(path)43     return dataFile ~/anaconda3/envs/DVS/lib/python3.8/site-packages/torch/_ops.py:761, in _OpNamespace.__getattr__(self, op_name)757     op, overload_names = torch._C._jit_get_operation(qualified_op_name)758 except RuntimeError as e:759     # Turn this into AttributeError so getattr(obj, key, default)760     # works (this is called by TorchScript with __origin__)
--> 761     raise AttributeError(762         f"'_OpNamespace' '{self.name}' object has no attribute '{op_name}'"763     ) from e765 # let the script frontend know that op is identical to the builtin op766 # with qualified_op_name767 torch.jit._builtins._register_builtin(op, qualified_op_name)AttributeError: '_OpNamespace' 'image' object has no attribute 'read_file'
# packages in environment at /home/algroup/anaconda3/envs/DVS:
#
# Name                    Version                   Build  Channel
torch                     2.1.1                    pypi_0    pypi
torchcam                  0.4.0                    pypi_0    pypi
torchextractor            0.3.0                    pypi_0    pypi
torchvision               0.11.3                   pypi_0    pypiNote: you may need to restart the kernel to use updated packages.

修改版本

说是torchvision版本不匹配什么的,我懒得改,因为还和pytorch有关系,要改要一起改很麻烦;

改用Image.open()读取文件

from PIL import Image
import torchvision.transforms as transformstotensor = transforms.ToTensor()
img = totensor(Image.open(path))

对于菜鸡而言,不敢瞎改,怕改错了整个程序都崩溃了。但是读清楚之后,发现出问题的只是一个读取图片的小函数,之前理论上如果能运行的话,是吧.jpg文件读取成tensor,那我用别的函数做同样的时候就好,这是就自然想到Image.open()把图片转换成什么类型了,如果不是tensor,还要加一道转换步骤,就这样逻辑就严密了!

参考

[1] No such operator image::read_file问题解决

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

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

相关文章

Java——继承2

一、instanceof运算符 instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或子类所创建对象时,返回true;否则返回false。 使用instanceof运算符进行类型判断的实例代码 public class IIIIIInstanceof {pub…

使用阿里巴巴API获取商品详情的实践指南

摘要:本文将详细介绍如何使用阿里巴巴API获取商品详情数据,包括API的申请、认证、调用等步骤,并提供相关的代码示例。通过本文的实践指南,读者将能够轻松获取阿里巴巴平台上的商品信息,为业务开发提供有力支持。 一、引…

【XSLVGL2.0】如何在其它线程内更新UI

XSLVGL2.0 开发手册 【XSLVGL2.0】如何在其它线程内更新UI 1、概述2、UI资源锁锁死怎么办?1、概述 项目常常会在其它线程更新UI的状态,但如果直接更新UI会导致UI数据异常从而使得UI挂死。这时只需要使用UI资源锁即可保证UI数据不会异常了。 参考XSLVGL2.0 User Manual 页面…

Arthas 使用

Arthas是阿里巴巴开源的Java诊断工具,采用命令行交互的形式进行问题的定位与诊断。它能够帮助你. 解决以下问题: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我…

活动回顾|阿里云云原生 Serverless 技术实践营 深圳站回放PPT下载

11月24日“阿里云云原生 Serverless 技术实践营”深圳站圆满落幕。活动受众以关注 Serverless 技术的开发者、企业决策人、云原生领域创业者为主,活动形式为演讲、动手实操,让开发者通过一个下午的时间增进对 Serverless 技术的理解,快速上手…

visual Studio MFC 绘制单一颜色三角形、渐变颜色边框三角形、渐变填充三角形、边框渐变的正方形与填充渐变的正方形实例

MFC 绘制三角形 本文使用visual Studio MFC 平台实现绘制单一颜色三角形、渐变颜色边框三角形、渐变填充三角形、边框渐变的正方形与填充渐变的正方形. 关于基础工程的创建请参考Visual Studio 使用MFC 单文档工程绘制单一颜色直线和绘制渐变颜色的直线 文章目录 MFC 绘制三角形…

在Python中matplotlib函数的plt.plot()函数的颜色参数设置,以及可以直接运行的程序代码!

文章目录 前言一、使用字符串颜色:二、使用十六进制颜色:三、使用RGB元组:四、使用颜色映射:总结 前言 在matplotlib中,plt.plot()函数可以接受颜色参数,可以设置为字符串颜色(如red&#xff0…

瓶盖内的条码需要注意哪些?,才能帮助企业有效搭建与消费者沟通~

在不断发展的消费品领域,特别是饮料行业,组织不断寻求创造性的方法来扩大客户参与度、增强品牌忠诚度并消除假冒产品。一种获得认可的新兴方法是在瓶盖和瓶盖上实施DataMatrix 条形码扫描。这种创新方法提供了许多好处,从改善消费者互动到强化…

利用广度优先或模拟解决米诺骨牌

本周推荐阅读 C二分算法:得到子序列的最少操作次数 题目 n 张多米诺骨牌排成一行,将每张多米诺骨牌垂直竖立。在开始时,同时把一些多米诺骨牌向左或向右推。 每过一秒,倒向左边的多米诺骨牌会推动其左侧相邻的多米诺骨牌。同样…

Python基础教程:强大的Pandas数据分析库

Pandas是一个基于 NumPy 的非常强大的开源数据处理库,它提供了高效、灵活和丰富的数据结构和数据分析工具,当涉及到数据分析和处理时,使得数据清洗、转换、分析和可视化变得更加简单和高效。本文中,我们将学习如何使用Pandas来处理…

Android BSP 开发之六

1.设定Android settings中某个xml文件(包括其子项)或者某个Preference不被搜索到 设定某个xml文件(包括子项)不被搜索到 找到该xml文件对应的fragment java文件中的SEARCH_INDEX_DATA_PROVIDER,在该provider中对isPageSearchEnabled方法进行重写并…

BEV+Transformer架构加速“上车”,智能驾驶市场变革开启

BEVTransformer成为了高阶智能驾驶领域最为火热的技术趋势。 近日,在2023年广州车展期间,不少车企及智能驾驶厂商都发布了BEVTransformer方案。其中,极越01已经实现了“BEVTransformer”的“纯视觉”方案的量产,成为国内唯一量产…

使用Pytorch从零开始构建Normalizing Flow

归一化流 (Normalizing Flow) (Rezende & Mohamed,2015)学习可逆映射 f : X → Z f: X \rightarrow Z f:X→Z, 在这里X是我们的数据分布,Z是选定的潜在分布。 归一化流是生成模型家族的一部分,其中包括变分自动编…

C# 图片下载工具类

写在前面 从浏览器的Html文本中获取图片链接并保存到本地,同时对图片的分辨率和品质进行处理,以满足某些平台的规格需求;可以放到多线程中调用以提高下载效率。 代码实现 public class ImageDownloader{private int minImageSize 1024 * 1…

系列二十、Spring循环依赖问题

一、概述 循环依赖是指多个bean之间相互依赖,形成了一个闭环。比如A依赖于B、B依赖于C、C依赖于A,形成了一个圈,如: 二、循环依赖案例 2.1、构造方法注入产生循环依赖案例 2.1.1、ServiceA /*** Author : 一叶浮萍归大海* Date…

AntDB数据库,通信行业20年变迁的见证者

2000年至今,通信行业发展已过了20多年。面对通信行业巨大的数据信息,数据库在行业发展中发挥了巨大的作用,AntDB数据库便是其中较为知名的一款数据库。在通信行业快速发展的阶段,打破国外产品与技术垄断是产业发展的重点与难点。面…

处理分类问题的不平衡数据的 5 种技术

一、介绍 分类问题在机器学习领域很常见。正如我们所知,在分类问题中,我们试图通过研究输入数据或预测变量来预测类标签,其中目标或输出变量本质上是分类变量。 如果您已经处理过分类问题,那么您一定遇到过以下情况:其…

HTML5原生视频播放器组件video的videocontrolslist属性详解

HTML5提供了内置的视频播放控件,其中videocontrolslist是其中一个很有用的属性。videocontrolslist属性可以用于告诉浏览器在视频播放过程中应该显示哪些默认的用户界面控件。下面我们将从几个方面来介绍videocontrolslist的详细使用。 一、启用videocontrolslist videocont…

2024重庆大学计算机考研分析

24计算机考研|上岸指南 重庆大学 重庆大学计算机考研招生学院是计算机学院和大数据与软件学院。目前均已出拟录取名单。 重庆大学计算机学院是我国高校最早开展计算机研究的基地之一,1978年和1986年获西南地区首个硕士和博士点,1998年成立计算机学院&a…

单片机学习2——流水灯的实现

#include<reg52.h>sbit LED P1^0; unsigned char i;void main() {while(1){LED 0;for(i0;i<100;i);LED 1;for(i0;i<100;i);} } RST是复位按钮&#xff0c;单击一下之后&#xff0c;程序就会跑到最开始的位置运行。 右侧的按钮是RUN按钮&#xff0c;单击下&…