系列文章目录
文章目录
一、Usage
1、conda install --yes -c pytorch pytorch=1.7.1 torchvision cudatoolkit=11.0
conda: 这是一个包管理工具,用于管理 Python 环境和安装软件包。
install: 这是一个命令,表示要安装软件包。
–yes: 这个选项表示在安装过程中自动确认所有提示,避免手动确认。
-c pytorch: 这个选项指定了要从名为 pytorch 的频道(repository)中安装软件包。Conda 允许从不同的频道获取软件包。
pytorch=1.7.1: 这是要安装的具体软件包及其版本。在这里,表示要安装 PyTorch 的 1.7.1 版本。
torchvision: 这是另一个要安装的软件包,通常与 PyTorch 一起使用,提供计算机视觉相关的工具和数据集。
cudatoolkit=11.0: 这是要安装的 CUDA 工具包的版本,CUDA 是用于 GPU 加速计算的工具。这里指定为 11.0 版本。
2、代码
import torch # 导入 PyTorch 库,用于深度学习相关操作
import clip # 导入 CLIP 库,用于处理图像和文本的模型
from PIL import Image # 从 PIL 库导入 Image 模块,用于图像处理
# 检查是否有可用的 GPU,如果有则使用 CUDA,否则使用 CPU
device = "cuda" if torch.cuda.is_available() else "cpu"
# 加载 CLIP 模型和预处理函数,使用 ViT-B/32 结构,指定计算设备
model, preprocess = clip.load("ViT-B/32", device=device)
# 打开指定的图像文件,进行预处理,并增加一个维度(batch size),然后移动到指定设备
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
logits_per_image, logits_per_text = model(image, text)
# 对 logits 进行 softmax 操作,得到每个文本标签的概率分布
probs = logits_per_image.softmax(dim=-1).cpu().numpy()
# 打印每个标签的概率,显示模型对每个文本的预测概率
print("Label probs:", probs) # prints: [[0.9927937 0.00421068 0.00299572]]