您现在的位置是:首页 > 技术教程 正文

python调用pytorch的clip模型时报错

admin 阅读: 2024-03-25
后台-插件-广告管理-内容页头部广告(手机)

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

目录

  • 现象
  • 解决方案
    • 一、查看项目中是否有为clip名的文件
    • 二、查看clip是否安装成功

现象

clip源码及官方文档

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

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]]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

解决方案

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

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

在这里插入图片描述

二、查看clip是否安装成功

如果上述方案没有解决,查看是否为clip安装的问题
1、先调用如下命令,卸载已安装的clip

pip uninstall clip
  • 1

2、再根据官方文档的介绍,重新安装clip
在这里插入图片描述
3、如果重新安装后也无效,尝试卸载后以如下命令

pip install openai-clip
  • 1

如有其他疑问欢迎留言

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索