CLIP部署:在Ubuntu配置环境

前置背景:

        需求是把CLIP模型在实验室Ubuntu服务器上配置环境,有一个老师给的账号和密码,用mobaXterm可以连接上服务器。

        首先,需要在自己的文件夹里面下载Anaconda,因为我的账户里面别人已经下过了,所以,这一步不讲解过程。

        文章主要讲如何在Ubuntu服务器上,且已经下载过Anaconda的情况下,创建自己的Python虚拟环境,涉及如何选择Python编译器的版本、Pytorch的版本、CUDA的版本,才能保证Python+Pytorch+CUDA+服务器显卡驱动版本适配。

一.在服务器上安装Anaconda

        这个如何安装我不讲了,网上资料很多,装好了之后会有anaconda3文件夹,文件如下。

二、如何在服务器上创建自己的Python虚拟环境

1.envs文件夹

        先说上面的envs文件夹作用,里面放的就是已经创建好的所有虚拟环境,因为服务器环境是大家一起用的,里面的文件夹都是别人已经创建好的环境。如果你创建了自己的虚拟环境,这个文件夹里面会更新哦。

2.创建自己的虚拟环境 

        下面是我的执行命令(我用的第二个指定了Python版本),CLIP是自定义的虚拟环境名。如果用第一个不指定版本,我的服务器好像会自动在Anaconda里面选最新的Python版本3.12.3,但是这个版本太新了不适配我其他的环境,下面会讲清楚,关于如何判断我要选择哪个版本的Python创建虚拟环境。

conda create --name CLIP python
conda create --name CLIP python=3.11.4

 3.如何选择虚拟环境的Python版本

        先说原理,Python版本+Pytorch版本+CUDA Runtime+CUDA driver版本是统一的,如果不适配后面会有问题。下面我说一下这几个的版本要如何统一确定下来。

        查看服务器的显卡驱动版本

nvidia-smi

        输入上面的命令,显示如下,说明我的CUDA driver版本是12.4。

        因此,我的CUDA Runtime需要比CUDA driver版本的12.4低一点点,这样不容易出错。我选了12.1。如何找到该版本的安装CUDA Runtime环境的命令链接如下。

Start Locally | PyTorch 进入PyTorch网页会有这个图,点击红框。

        点击红框后,会显示如下界面。然后在Conda下面,找到Linux的CUDA12.1版本的命令就行。

         特别看到,里面有pytorch=2.2.2,看到这个才能确定我们的 Python版本。

# CUDA 12.1
conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia

        最后,进入网站https://github.com/pytorch/vision#installation,就能看到torch对应的Python版本了。

4.正式安装步骤

        上面讲了如何确定你的各种版本。总结而言,就是先看服务器的显卡CUDA驱动,我是12.4,导致我的CUDA Runtime版本就要比他小一点点,我选了12.1,再导致我的Pytorch版本是2.2.2,最后导致我的Python版本在3.8-3.11。

        下面就直接写每一步的安装步骤命令和运行结果了。

(1)创建指定Python版本的虚拟环境

        我选了3.11.4,其实只要是3.8-3.11都行(ps:运行下面的命令之前可以输入conda search python,查看Anaconda所有的Python环境,确保你指定的版本在Anaconda里面有,一般都有)

conda create --name CLIP python=3.11.4

(2)激活虚拟环境

conda activate CLIP

(3)在虚拟环境内,安装指定版本的CUDA runtime和Pytorch

conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia

(4)在虚拟环境内,安装三个要用的第三方库

pip install ftfy regex tqdm --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple

(5)进入CLIP-main文件夹(有 setup.py文件)进行最后一步安装

        一定要进入CLIP-main文件夹哦。

python3 setup.py build install

        到这里,CLIP的环境就搭建好了,下面开始测试喽。

三、测试

1.进入CLIP-main/tests文件夹

 2.跑项目自带的测试文件test_consistency.py

        要安装pytest之后,才能跑test_consistency.py文件

        用下面的命令测试,-s不加也行,就是如果在文件里自己加一些print语句希望看看程序执行到哪看不见,最好加上。

conda install pytest
pytest -s test_consistency.py 

PS:这个测试跑的很慢,因为里面把CLIP所有模型文件都要加载,2小时起步。建议可以先跑一个小的Demo,看看环境是不是好了,直接见第三步。

        如果这跑这个pytest的文件,大概运行界面如下,py后面的绿色框框里会有.....输出,一个点代表一个模型运行成功了,大概输出到九个点就结束了,因为要load九个模型。

        最后跑完的结果如下,还有3个waring,不过九个模型的passed就问题不大,说明成功了。

3.跑自己写的测试文件mytest.py

import torch
import clip
from PIL import Image
 
device = "cuda" if torch.cuda.is_available() else "cpu"
model, preprocess = clip.load("ViT-B/16", device=device)
#model, preprocess = clip.load("ViT-L/14", device=device)
 
image = preprocess(Image.open("CLIP.png")).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)  

        这个py文件放的位置如下。把上面的代码复制进去就行。

        然后,运行如下命令,测试文件,

python mytest.py
#conda deactivate(退出虚拟环境)

         运行结果如下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

守岁白驹hh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值