ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

CLIP 安装教程:一句文字匹配图片,3 条命令完成本地部署

CLIP 安装教程:一句文字匹配图片,3 条命令完成本地部署 CLIP 安装教程一句文字匹配图片3 条命令完成本地部署【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIPCLIP 是 OpenAI 的对比语言-图像预训练模型给一句文字它就帮你给每张图打匹配分。本文带你走一遍 CLIP 安装与本地部署的完整流程查环境、一条命令装完、30 秒验证最后跑通真实图片的文字匹配。无需深度学习基础大约 10 分钟。先查机器一条命令自检环境 装之前先花 30 秒确认两件事Python 版本够不够、有没有 NVIDIA 显卡。python -V # 要求 3.7 及以上 nvidia-smi # 有 NVIDIA 显卡会显示显卡与 CUDA 版本提示找不到命令说明只有 CPU配置参考官方说明见 README.md配置项最低要求推荐系统Windows 10 / macOS 10.15 / Ubuntu 20.04Windows 11 / macOS 12 / Ubuntu 22.04内存4GB8GB 以上显卡无CPU 可跑只是慢NVIDIA 显卡 CUDAPython3.73.8–3.10✅ 没有独立显卡也没关系CLIP 在 CPU 上照样工作本教程所有代码都做了兼容后面会自动选设备。环境配置一锅端3 步装完创建独立 conda 环境装 PyTorch再装 CLIP 本体。Windows / macOS / Linux 通用差异只有一处安装 PyTorch 那一行已用注释标明# 第 1 步创建并激活独立环境避免依赖互相污染 conda create -n clip python3.9 -y conda activate clip # 第 2 步安装 PyTorch三选一按机器情况 # 有 NVIDIA 显卡 conda install pytorch torchvision cudatoolkit11.8 -c pytorch -y # 无显卡Windows/macOS/Linux 通用把上面那条换成这条 # conda install pytorch torchvision cpuonly -c pytorch -y # macOS 用户可直接用默认版 # conda install pytorch torchvision -c pytorch -y # 第 3 步装少量依赖 获取 CLIP 源码并安装 pip install ftfy regex tqdm packaging git clone https://gitcode.com/GitHub_Trending/cl/CLIP cd CLIP pip install .三个小提醒cudatoolkit11.8改成与你系统匹配的版本即可nvidia-smi右上角能看到 CUDA 版本依赖清单见 requirements.txt打包配置见 setup.py想核对装了什么可以看这两个文件到这里安装动作就结束了。模型权重不会随 pip 下载而是在你第一次clip.load()时才拉取ViT-B/32 约 350MB属于正常现象最快验证看到 0.99 就说明装好了在 CLIP 根目录新建一个check.py内容如下不足 20 行import torch import clip from PIL import Image # 自动选设备有显卡用 GPU没有就用 CPU device cuda if torch.cuda.is_available() else cpu model, preprocess clip.load(ViT-B/32, 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(): logits, _ model(image, text) # 图文两两算相似度 probs logits.softmax(dim-1).cpu().numpy() # 归一化成概率 print(probs[0])预期输出CPU/GPU 上可能略有出入[0.9927937 0.00421068 0.00299572]怎么判断成功第一个数 0.99 对应 a diagram一张示意图而 CLIP.png 本身就是一张示意图概率几乎拉满、另外两项接近 0——只要最高分给到了 a diagram说明模型、依赖、设备全链路都通了。clip.load、clip.tokenize这些接口都在 clip/clip.py 里后面写代码可以翻它。最容易踩的 3 个坑症状、原因、解法都压成一行照抄即可症状原因一行解法ImportError: No module named torch或clip没在 clip 环境里运行依赖没装上先conda activate clip再在 CLIP 目录重跑pip install .首次运行时卡在模型下载、速度极慢ViT-B/32 权重数百 MB走的是外网给终端设http_proxy/https_proxy代理后重跑内存不足或 CPU 上跑一张图要等很久ViT-B/32 偏大、输入过大把ViT-B/32换成更小的RN50并减小图片尺寸⚠️ 第 1 条是最常见的终端里conda env list看一眼当前环境前面要有星号。第一个真实场景用一句话从候选里挑出最贴的图上面用的是仓库自带的图现在换成你自己的照片。这就是常说的零样本zero-shot——不用任何额外训练直接把文字描述喂进去做分类。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) # 换成你本地任意一张图片的路径 image preprocess(Image.open(my_photo.jpg)).unsqueeze(0).to(device) # 四句候选描述 cands [a photo of a cat, a photo of a dog, a photo of a car, a photo of a person] text clip.tokenize(cands).to(device) with torch.no_grad(): logits_per_image, _ model(image, text) # softmax 后各项之和为 100%分越高说明越贴合这张图 probs logits_per_image.softmax(dim-1).cpu().numpy()[0] for name, p in zip(cands, probs): print(f{name:24s} {p:.2%})如果你喂进去的是一只猫的照片输出大概长这样a photo of a cat 98.71% a photo of a dog 0.61% a photo of a car 0.32% a photo of a person 0.35%✅ 分数最高的一行就是模型的答案。换描述、换图片把四句候选扩到几十句你就有了一个最简版的文字搜图。收尾清单你已经完成了什么用python -V和nvidia-smi确认过 Python 版本与显卡情况在独立 conda 环境里装好 PyTorch 与 CLIP 全部依赖跑通验证代码看到 a diagram 概率接近 1用自己的照片完成了一次文字匹配想继续深入本地就有现成资料模型说明 model-card.md、可交互演示 notebooks/Interacting_with_CLIP.ipynb、提示词工程实例 notebooks/Prompt_Engineering_for_ImageNet.ipynb。论文《Learning Transferable Visual Models From Natural Language Supervision》可配合阅读。下一篇我们聊聊如何用 CLIP 把上千张图片变成可文字检索的图库一句话就能定位。【免费下载链接】CLIPCLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image项目地址: https://gitcode.com/GitHub_Trending/cl/CLIP创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表