conda环境module ‘clip‘ has no attribute ‘load‘解决

1 问题描述

运行基于clip的zero-shot预测代码,报错如下:

Traceback (most recent call last):File "D:\code\ptcontainer\clip\clipembeding.py", line 38, in <module>clip_embeding = ClipEmbeding()File "D:\code\ptcontainer\clip\clipembeding.py", line 11, in __init__self.model, self.processor = clip.load("d:/models/clip/ViT-L-14-336px.pt", device=self.device)
AttributeError: module 'clip' has no attribute 'load'

执行的代码:

import os
import clip
import torch
from torchvision.datasets import CIFAR100# Load the model
device = "cuda" if torch.cuda.is_available() else "cpu"
model, preprocess = clip.load('ViT-B/32', device)# Download the dataset
cifar100 = CIFAR100(root=os.path.expanduser("./data/"), download=True, train=False)# Prepare the inputs
image, class_id = cifar100[3637]
image_input = preprocess(image).unsqueeze(0).to(device)
text_inputs = torch.cat([clip.tokenize(f"a photo of a {c}") for c in cifar100.classes]).to(device)# Calculate features
with torch.no_grad():image_features = model.encode_image(image_input)text_features = model.encode_text(text_inputs)# Pick the top 5 most similar labels for the image
image_features /= image_features.norm(dim=-1, keepdim=True)
text_features /= text_features.norm(dim=-1, keepdim=True)
similarity = (100.0 * image_features @ text_features.T).softmax(dim=-1)
values, indices = similarity[0].topk(5)# Print the result
print("\nTop predictions:\n")
for value, index in zip(values, indices):print(f"{cifar100.classes[index]:>16s}: {100 * value.item():.2f}%")

2 问题分析

查看pip安装的组件包,显示如下:

(pt2) D:\code\ptcontainer>pip list
Package                      Version      Editable project location
---------------------------- ------------ -------------------------
absl-py                      1.4.0
......
click                        8.1.3
clip                         1.0
......
vocos                        0.0.3
wcwidth                      0.2.6
websockets                   11.0.2
Werkzeug                     3.0.1
wheel                        0.38.4
wincertstore                 0.2
wrapt                        1.15.0
yarl                         1.9.2
zipp                         3.15.0

组件中包含clip, 但在执行中找不到load方法。

3 问题解决

重新安装clip组件包

pip unintall clippip install torch==1.9.0
pip install torchaudio==0.9.0
pip install torchvision==0.10.0pip install ftfy regex tqdm
pip install git+https://github.com/openai/CLIP.git

最后一个pip有时执行会失败,需要多尝试几次,如果依然失败,使用下面的命令替换

pip install git+https://ghproxy.com/https://github.com/openai/CLIP.git

安装成功后,再次运行程序,不再报错。

运行结果显示如下:

100%|███████████████████████████████████████| 338M/338M [00:24<00:00, 14.6MiB/s]
Downloading https://www.cs.toronto.edu/~kriz/cifar-100-python.tar.gz to ./data/cifar-100-python.tar.gz
169001984it [00:21, 7711931.97it/s]                               
Extracting ./data/cifar-100-python.tar.gz to ./data/Top predictions:snake: 65.31%turtle: 12.29%sweet_pepper: 3.83%lizard: 1.88%crocodile: 1.75%

 4 conda环境介绍

Conda是一个开源的包管理器和环境管理系统,用于安装、运行和更新包和其依赖项。它是由Anaconda, Inc.(以前称为Continuum Analytics)创建,用于支持Python程序开发,但它也可以用来管理来自其他语言的包。Conda使得包管理和环境隔离变得简单,对于处理多个项目中的依赖关系和版本控制尤其有用。

Conda是一个强大的工具,对于管理复杂的Python项目和环境至关重要。它简化了包管理和环境设置,使得Python开发更加容易和高效。通过使用Conda,开发者可以确保他们的项目在不同机器和操作系统上都能以相同的方式运行,大大提高了项目的可移植性和可复现性。

4.1 Conda的核心功能

  • 包管理:Conda作为包管理器,可以安装、更新和移除Python包。它通过Conda仓库,如Anaconda Cloud或Conda Forge,来获取包。

  • 环境管理:Conda允许用户创建隔离的环境,以便于不同项目可以拥有不同的库和/或Python版本。这在处理不兼容的依赖项或不同项目的需求时非常有用。

  • 跨平台:Conda支持Linux、OS X和Windows,并允许创建跨平台的Python环境。

  • 开源:Conda是开源的,允许用户查看源代码并对其进行改进。

4.2 使用Conda的优势

  • 解决依赖性问题:Conda可以自动解决包之间的依赖关系,简化了安装过程。

  • 环境隔离:创建独立的环境可以避免包之间的版本冲突,使得项目更稳定。

  • 易于使用:Conda的命令行界面简单直观,易于学习和使用。

  • 广泛的包支持:Conda支持Python的许多流行库和应用程序。

  • 社区支持:作为一个流行的工具,Conda拥有一个活跃的社区,用户可以从中找到支持和资源。

4.3 Conda环境的创建和管理

  • 创建新环境:使用conda create命令创建一个新环境,可以指定Python版本和所需的包。

  • 激活环境:使用conda activate命令来激活环境。

  • 安装包:在激活的环境中使用conda install命令来安装新的包。

  • 环境列表:使用conda env list来查看所有可用的Conda环境。

  • 移除环境:使用conda env remove命令来移除不再需要的环境。

4.4 应用场景

  • 数据科学和机器学习:Conda非常适合于数据科学和机器学习项目,这些项目通常需要多个库和框架。
  • 软件开发:软件开发者使用Conda来管理项目依赖,确保一致的开发环境。
  • 教学和学术研究:教师和研究人员使用Conda来创建具有特定库和工具的环境,用于教学和研究。

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

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

相关文章

企业邮箱即时提醒服务推荐

现在用企业邮箱比较多&#xff0c;但是不能即时提醒&#xff0c;总是误事&#xff0c;什么邮箱可以即时提醒呢&#xff1f;随着工作和生活节奏的加快&#xff0c;传统的电子邮件系统由于不能即时提醒&#xff0c;往往会导致重要邮件的漏接&#xff0c;从而引发一系列的麻烦和误…

Windows小工具_剪切板

Windows11自带剪切板功能,可以保存剪切的全部历史,避免了多次重复打开文件剪切复制的烦恼. 打开步骤如下: 1.点击桌面下方任务栏的开始按钮 2.选择"设置" 如果"开始"里面的"已固定栏"找不到设置,在此处点击"所有应用" 3.找到"系…

基于qemu_v8+optee 3.17平台的ca/ta Demo

1、整体集成构建 基于官方构建&#xff0c;加入自定义ca/ta后一体构建到rootfs&#xff0c;在qemu上运行 $ mkdir -p <optee-project> $ cd <optee-project> $ repo init -u https://github.com/OP-TEE/manifest.git -m ${TARGET}.xml [-b ${BRANCH}] $ repo syn…

劲松中西医医院HPV诊疗中心科普:扁平疣4个知识点要了解

扁平疣是一种常见的皮肤病&#xff0c;其表现为皮肤上的扁平丘疹&#xff0c;通常无痛无痒&#xff0c;但会影响患者的外貌和心理。许多人在患上扁平疣后会考虑是否可以自己消退&#xff0c;下面我们将从几个方面进行探讨。 扁平疣的病因 扁平疣是由人乳头瘤病毒(HPV)引起的。…

V2X全方位通信部署解决方案如何支持智能交通建设?

背景介绍 后疫情时代人们更注重于享受当下&#xff0c;掀起了一股“旅游热”。大批量游客的到来给旅游胜地带来更多的人气和收益的同时&#xff0c;也带来了一系列的交通问题&#xff1a;游客和当地人民不仅会面临停车困难、交通拥堵的烦恼&#xff0c;还会因为游客对交通环境…

【考研数据结构代码题7】求一元多项式之和

题目&#xff1a;编写一个算法&#xff0c;求一元多项式之和 考纲&#xff1a;一元多项式的表示与相加 题型&#xff1a;代码填空或算法设计 难度&#xff1a;★★★ 参考代码 typedef struct node{float coef;//系数int exp;//次数struct node *next; }polynode; polynode *…

Python 自动化测试全攻略:五种自动化测试模型实战详解!

随着移动互联网的发展&#xff0c;软件研发模型逐步完善&#xff0c;软件交付质量越来越受到软件公司的重视&#xff0c;软件测试技术特别是自动化测试技术开始在软件系统研发过程中发挥着越来越重要的作用。 与传统的手工测试技术相比&#xff0c;自动化测试具备了良好的可操…

mysql允许远程连接

1. 检查服务器防火墙 防火墙若开启则需要开放mysql使用的3306端口才可远程访问&#xff1b; 若无安全性要求也可以直接关闭防火墙。 防火墙相关命令&#xff1a; # 检查防火墙状态 systemctl status firewalld # 开启防火墙 systemctl start firewalld # 停止防火墙 systemctl …

从入门到精通:掌握Python测试框架pytest的必备技能!

这篇文章主要介绍了Python测试框架&#xff1a;pytest的相关资料&#xff0c;帮助大家更好的利用python进行单元测试&#xff0c;感兴趣的朋友可以了解下 python通用测试框架大多数人用的是unittestHTMLTestRunner&#xff0c;这段时间看到了pytest文档&#xff0c;发现这个框…

编程世界中的不可思议任务

在这个以代码为生命的职场里&#xff0c;遇到过形形色色的人物。让我印象最深的&#xff0c;当属那位对技术一窍不通&#xff0c;却对代码指手画脚的“极客”领导。他将编程的艺术视为一种神秘的巫术&#xff0c;经常提出些看似高大上&#xff0c;实则荒诞不经的要求。 那是一个…

PasteNow for mac剪贴板工具

PasteNow 是一款简单易用的剪贴板管理工具&#xff0c;可帮助用户快速存储和管理剪贴板上的文本和图片内容。用户可以使用 PasteNow 软件快速将文本内容保存到不同的笔记或页面中&#xff0c;也可以方便地将剪贴板上的图片保存到本地或分享给其他应用程序。 此外&#xff0c;P…

捷诚管理信息系统 SQL注入漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 一、产品介绍 捷诚管理信息系统是一款功能全面&#xff0c;可以支持自…