尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

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

Hugging Face Transformers 零样本图像分类快速教程:不训练模型,3 步给图片打标签

Hugging Face Transformers 零样本图像分类快速教程:不训练模型,3 步给图片打标签 Hugging Face Transformers 零样本图像分类快速教程不训练模型3 步给图片打标签【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers你是否遇到过这样的需求运营团队丢来一张新产品的实拍图希望今晚就能自动归类到食品 / 电子 / 服饰或者想给一批图片按自定义规则打标却发现手头根本没有标注数据、也等不起一次模型训练用 Hugging Face Transformers 的零样本图像分类zero-shot image classification这件事可以绕开训练你把一张图和一组候选标签交给它模型直接告诉你图里是什么。无需 GPU、无需标注数据、无需改模型结构核心代码不到 10 行。原理速览一张图讲清零样本是怎么做到的三个要点就够了双塔同空间图片被 CLIP 类的双塔模型编码成向量你写的每个标签如一只苹果也编码成向量两者落在同一个语义空间里。分类 相似度对每个标签算图向量 vs 文向量的相似度分数最高的标签胜出。所谓分类本质是文本检索。标签随你改明天业务要多一个家电类目改代码里的标签列表即可模型一个参数都不用动——这正是零样本的含义。项目里的测试样例图就用来做后文的演示三步跑起来环境、代码、调参第 1 步一键安装环境# 克隆代码仓库本文所有示例均基于本仓库代码 git clone https://gitcode.com/GitHub_Trending/tra/transformers cd transformers # 安装核心库约 1 分钟CPU 环境即可运行 pip install transformers没有 PyTorch 也能跑pipeline 会自动选择合适的推理后端首次运行会自动下载模型权重之后走本地缓存。第 2 步最小可运行代码把下面的demo.py放到仓库根目录直接复用仓库自带的苹果样例图from transformers import pipeline # 任务名 模型名一步加载零样本图像分类器 classifier pipeline(zero-shot-image-classification, modelgoogle/siglip-so400m-patch14-384) # 传入图片路径和候选标签立即拿到带分数的排序结果 result classifier( tests/fixtures/tests_samples/COCO/apple.jpg, candidate_labels[一只苹果, 一个足球, 一碗面条], ) print(result) # 预期[{score: 0.9x, label: 一只苹果}, ...]运行一次输出是一个按相似度从高到低排序的列表每个候选标签对应一个score。第 3 步调参让结果更听话真正用起来时你多半要调这两处调什么怎么写什么时候用返回数量top_k2默认返回全部候选候选标签很多时只看前几名推理设备device1加载时传入有 GPU 时加速批处理尤其明显classifier pipeline(zero-shot-image-classification, modelgoogle/siglip-so400m-patch14-384, device1) # 有 GPU 才加这一行 result classifier(xxx.jpg, candidate_labels[苹果, 足球, 面条, 风景], top_k2) # 只返回最可能的 2 个换个场景看效果同一张图、不同标签集结论完全不同分数为示意值以实际运行为准候选标签最可能的预测分数示意苹果 / 足球 / 面条苹果约 0.95水果 / 蔬菜 / 玩具水果约 0.8红 / 绿 / 黄红约 0.6可以看出模型不是认出苹果而是在你给的选项里挑语义最接近的。标签写得好不好直接决定结果好不好。进阶玩法批量打标与文本零样本批量处理classifier直接接受路径列表内部一次前向算完比逐张调用快得多# 列表批量推理一次传多张图返回按图片分组的结果 paths [ tests/fixtures/tests_samples/COCO/apple.jpg, tests/fixtures/tests_samples/COCO/000000039769.png, ] results classifier(paths, candidate_labels[食物, 动物, 人物, 厨房], top_k1)同类能力顺手可用同一套文本 vs 文本的零样本思路也支持纯文本任务比如按自定义标签给文章分类任务名换成zero-shot-classification即可思路完全一致这里不再展开。避坑指南新手最常问的 4 个问题Q分数 0.9 是不是90% 确定不是。分数是在本次候选标签之间的相对占比所有候选的分数之和恒等于 1。候选只有 2 个时分数容易偏高候选多了分数会被摊薄——比较同一批候选内的相对大小才有意义。Q候选里根本没有正确答案怎么办模型仍会返回最接近的那个且可能分数不高。建议保留一个其他/无法判断兜底标签低置信度结果走人工复核。Q第一次运行特别慢首次会自动下载模型权重CPU 上下载本身不慢解码图 前向约需 1~2 秒/张视硬件而定第二次起读缓存速度正常。Q标签该写中文还是英文写模型训练时更熟悉的语言。多数 CLIP 系模型对英文短描述更稳中文短标签2~6 个字的名词通常也可用避免长句。上线前 checklist候选标签控制在 10 个以内命名与业务类目一一对应加一个兜底标签并定好低分阈值用一批真实业务图做冒烟测试别只用官方样例图文档入口与社区官方文档pipeline 总览docs/source/en/main_classes/pipelines.md零样本图像分类源码src/transformers/pipelines/zero_shot_image_classification.py更多可用模型与任务浏览 src/transformers/pipelines/ 下的各任务实现零样本图像分类的价值不在省一次训练而在让分类口径跟着业务走类目表变了改一行标签列表就行。建议收藏本文下次接到新图打标需求时直接翻出来照着做。也欢迎克隆仓库动手改标签集把结果贴到社区讨论。【免费下载链接】transformers Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.项目地址: https://gitcode.com/GitHub_Trending/tra/transformers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表