news 2026/10/21 2:03:12

图像嵌入生成指南:用 tiny_vit_21m_224.dist_in22k 输出576维向量,搞定分类与相似检索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
图像嵌入生成指南:用 tiny_vit_21m_224.dist_in22k 输出576维向量,搞定分类与相似检索

【免费下载链接】tiny_vit_21m_224.dist_in22k

项目地址:https://ai.gitcode.com/hf_mirrors/timm/tiny_vit_21m_224.dist_in22k
点击查看免费下载

想用tiny_vit_21m_224.dist_in22k为图像生成576 维嵌入向量?这篇图像嵌入生成指南带你从零上手:它基于轻量级视觉 Transformer(TinyViT),在 ImageNet-22k 上经蒸馏预训练,既能做图像分类,也能输出固定 576 维的向量用于图像相似检索,小模型跑出大效果。🎯

模型简介:为什么选 TinyViT?

tiny_vit_21m_224.dist_in22k是一个只有33.2M 参数的小型 ViT 模型,计算量仅4.1 GMACs,输入尺寸为 224×224。"dist_in22k" 表示它由论文作者用知识蒸馏(distillation)在 ImageNet-22k 数据集上预训练,分类头覆盖21841 个类别。

相比动辄上亿参数的大模型,它的优势在于:

特点说明
💪 轻量高效33.2M 参数,CPU 也能跑推理
🔢 固定向量维度每张图片输出 576 维嵌入,方便建索引
📚 大规模预训练ImageNet-22k + 蒸馏,特征质量高
🎯 双用途既能分类,又能做相似度检索的特征骨干

模型的核心信息可以在 README.md 中查看,包含完整的模型细节与使用示例。

快速上手:三步生成 576 维向量

第一步:安装依赖

只需要三个 Python 库,安装即可开始:

pip install timm torch torchvision

第二步:准备模型文件

仓库中的 model.safetensors 和 pytorch_model.bin 是模型权重文件(safetensors 与 PyTorch 两种格式),config.json 则记录了架构、类别数、归一化均值方差等关键配置。若需获取完整仓库,可执行:

git clone https://gitcode.com/hf_mirrors/timm/tiny_vit_21m_224.dist_in22k

第三步:生成图像嵌入

使用timm加载模型时,把num_classes=0去掉分类头,模型输出就直接是一张图片对应的576 维向量:

from PIL import Image import timm import torch model = timm.create_model( 'tiny_vit_21m_224.dist_in22k', pretrained=True, num_classes=0, # 去掉分类头,只保留特征向量 ) model.eval() data_config = timm.data.resolve_model_data_config(model) transforms = timm.data.create_transform(**data_config, is_training=False) img = Image.open('my_photo.jpg') with torch.no_grad(): embedding = model(transforms(img).unsqueeze(0)) # 形状: (1, 576)

💡 不想改num_classes时,也可以调用model.forward_features(...)得到未池化的(1, 576, 7, 7)特征图,再用model.forward_head(..., pre_logits=True)池化成 576 维向量,两种写法等价。

两大核心应用场景

场景一:图像分类

保留默认的 21841 类分类头,对输出做 softmax 即可得到每张图的 Top-K 类别概率。适合做本地图片打标、相册整理、内容审核等轻量分类任务。

场景二:图像相似检索

这是 576 维向量最擅长的场景:

  1. 建库:对图片库逐张生成 576 维向量,存入向量数据库(如 FAISS、Milvus);
  2. 查询:对新图片生成向量,计算余弦相似度(cosine similarity);
  3. 排序:返回最相似的 Top-N 结果,实现以图搜图。🔍

向量维度固定为 576,索引规模可控、检索速度快,非常适合中小规模的以图搜图系统。

关键配置参数解读

打开 config.json,这些字段决定了模型的输入输出行为:

参数值含义
architecturetiny_vit_21m_224模型架构,224 表示输入分辨率
num_classes21841ImageNet-22k 类别数
num_features576输出嵌入向量的维度
input_size[3, 224, 224]输入为 3 通道 224×224 图像
mean/std[0.485, 0.456, 0.406]/[0.229, 0.224, 0.225]ImageNet 归一化参数
crop_pct0.95评估时的中心裁剪比例

如果只需要中间特征图(例如做目标检测、分割等下游任务),可以用features_only=True加载模型,它会依次输出四级特征图:

torch.Size([1, 96, 56, 56]) torch.Size([1, 192, 28, 28]) torch.Size([1, 384, 14, 14]) torch.Size([1, 576, 7, 7]) # 最深一层,对应 576 维特征

常见问题 FAQ

问:为什么我的向量不是 576 维?检查是否误设了num_classes。去掉分类头(num_classes=0)或改用forward_features+forward_head,输出即为 576 维。

问:输入图片大小必须是 224×224 吗?建议保持 224×224。transforms已内置 resize 与归一化逻辑,交给timm.data.create_transform处理即可。

问:CPU 能跑吗?可以。33.2M 参数 + 4.1 GMACs 的计算量非常小,CPU 单图推理通常在毫秒到数百毫秒级别。

问:向量如何比较相似度?推荐先对向量做 L2 归一化,再用余弦相似度排序,这样数值比较稳定且无需额外缩放。

小结

tiny_vit_21m_224.dist_in22k 是一个开箱即用的图像特征方案:三步即可生成 576 维向量,既能分类又能以图搜图。更多用法示例(分类、特征图提取、嵌入生成)详见 README.md,欢迎动手实践!🚀

【免费下载链接】tiny_vit_21m_224.dist_in22k

项目地址:https://ai.gitcode.com/hf_mirrors/timm/tiny_vit_21m_224.dist_in22k
点击查看免费下载
上一篇:3步掌握B站4K视频下载:bilibili-downloader完整配置指南
下一篇:AIO Sandbox 内置 OpenCode 集成指南:环境变量配置、Provider 接入与终端使用

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 2:03:07

信息光学作业:MATLAB傅里叶光学与衍射仿真全解析

简介:面向信息光学课程学习者与MATLAB编程实践者的作业资源包,集中呈现傅里叶变换、GUI交互和衍射模拟三大光学计算主题。压缩包整体约22.71MB,内部以MATLAB脚本与函数文件为主,适合直接运行、调试并在此基础上二次开发。傅里叶变…

作者头像 李华
网站建设 2026/10/21 2:02:01

8V-120V宽压输入DC-DC芯片XZ1823设计实战:从选型到量产避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 2:01:22

iPhone 模拟器实测:Madeira 在 iOS 跑 x86-64 Windows 游戏拆解

iPhone 模拟器实测:Madeira 在 iOS 跑 x86-64 Windows 游戏拆解 【免费下载链接】Madeira Run x86-64 Windows PC games on jailed iOS via FEX-Emu Wine DXMT 项目地址: https://gitcode.com/GitHub_Trending/mad/Madeira App Store 里搜不到它&#xff0…

作者头像 李华
网站建设 2026/10/21 2:00:37

AUTOSAR Simulink建模实战:SWC与BSW边界划分及代码生成避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 1:59:44

Java 内部迭代 vs 外部迭代:从原理到实战避坑

外部迭代:你控制循环(for/while/iterator);内部迭代:库控制循环(Stream、Iterable.forEach)一、核心定义 & 原理1. 外部迭代(External Iteration)代码主动获取迭代器…

作者头像 李华