python调用pytorch的clip模型时报错

使用python调用pytorch中的clip模型时报错:AttributeError: partially initialized module 'clip' has no attribute 'load' (most likely due to a circular import)

目录

现象

clip源码及官方文档

在使用pyton调用pytorch中的clip模型获取图片的关键词时,根据官方文档的代码描述,代码内容如下

java 复制代码
import torch
import clip
from PIL import Image

device = "cuda" if torch.cuda.is_available() else "cpu"
model, preprocess = clip.load("ViT-B/32", device=device)

image = preprocess(Image.open("C:/Users/HLY/Desktop/3.jpeg")).unsqueeze(0).to(device)
text = clip.tokenize(["a diagram", "a dog", "a cat"]).to(device)

with torch.no_grad():
    image_features = model.encode_image(image)
    text_features = model.encode_text(text)

    logits_per_image, logits_per_text = model(image, text)
    probs = logits_per_image.softmax(dim=-1).cpu().numpy()

print("Label probs:", probs)  # prints: [[0.9927937  0.00421068 0.00299572]]

根据官方文档安装pytorch,clip等版本后,报错,报错信息如下

java 复制代码
Traceback (most recent call last):
  File "D:\WorkTest\pythonProject\resnetTest\clip.py", line 2, in <module>
    import clip
  File "D:\WorkTest\pythonProject\resnetTest\clip.py", line 6, in <module>
    model, preprocess = clip.load("ViT-B/32", device=device)
                        ^^^^^^^^^
AttributeError: partially initialized module 'clip' has no attribute 'load' (most likely due to a circular import)

解决方案

一、查看项目中是否有为clip名的文件

如果项目中有clip.py名文件,import clip会默认为引入自己,则会出现上述所说循环导入的问题。

将clip.py文件更名即可

二、查看clip是否安装成功

如果上述方案没有解决,查看是否为clip安装的问题

1、先调用如下命令,卸载已安装的clip

java 复制代码
pip uninstall clip

2、再根据官方文档的介绍,重新安装clip

3、如果重新安装后也无效,尝试卸载后以如下命令

java 复制代码
pip install openai-clip

如有其他疑问欢迎留言

相关推荐
远望清一色13 分钟前
基于MATLAB边缘检测博文
开发语言·算法·matlab
封步宇AIGC21 分钟前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
何曾参静谧21 分钟前
「Py」Python基础篇 之 Python都可以做哪些自动化?
开发语言·python·自动化
Prejudices25 分钟前
C++如何调用Python脚本
开发语言·c++·python
我狠狠地刷刷刷刷刷38 分钟前
中文分词模拟器
开发语言·python·算法
wyh要好好学习41 分钟前
C# WPF 记录DataGrid的表头顺序,下次打开界面时应用到表格中
开发语言·c#·wpf
AitTech42 分钟前
C#实现:电脑系统信息的全面获取与监控
开发语言·c#
qing_04060344 分钟前
C++——多态
开发语言·c++·多态
孙同学_44 分钟前
【C++】—掌握STL vector 类:“Vector简介:动态数组的高效应用”
开发语言·c++
froginwe111 小时前
XML 编辑器:功能、选择与使用技巧
开发语言