news 2026/10/23 2:16:52

1.3 GMACs 跑通图像分类:deit_tiny_distilled_patch16_224.fb_in1k 蒸馏 Transformer 快速上手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
1.3 GMACs 跑通图像分类:deit_tiny_distilled_patch16_224.fb_in1k 蒸馏 Transformer 快速上手

1.3 GMACs 跑通图像分类:deit_tiny_distilled_patch16_224.fb_in1k 蒸馏 Transformer 快速上手

【免费下载链接】tt-metal:metal: TT-NN operator library, and TT-Metalium low level kernel programming model.项目地址: https://gitcode.com/GitHub_Trending/ttm/tt-metal

deit_tiny_distilled_patch16_224.fb_in1k 用5.9M 参数、约1.3 GMACs的单次推理开销就能完成 224×224 图像分类,是边缘端与移动端落地轻量视觉 Transformer 的实用之选。

一张表看懂关键参数

跑之前先确认几个核心规格,心里有数再动手:

参数数值说明
参数量5.9M体积极小,搬运到端侧设备的成本很低
计算量1.3 GMACs单次前向乘加次数,决定实时性上限
输入尺寸224×224 RGB与 ImageNet 标准预处理分辨率一致
特征维度192forward_features输出每个 token 的维度
训练集ImageNet-1k1000 类自然图像分类基准

提示:GMACs是"十亿次乘加运算"的单位,数字越小,对硬件算力的要求越低,也越省电。

它凭什么又快又好

先用一个类比理解知识蒸馏:学徒跟大厨学做菜,师傅不会把整本菜谱塞给他,而是现场演示火候与摆盘——学徒花远小于啃完所有书的力气,就能还原出九成的味道。知识蒸馏同理:大"教师"模型输出的不是唯一的硬标签,而是"猫 0.8、狗 0.1……"这样一份软概率排序,小"学生"模型去模仿这份排序。deit_tiny_distilled_patch16_224.fb_in1k 就是按这个思路训练出来的。

顺着"输入→处理→输出"把它的计算过程过一遍就清楚了。

输入端:你给它的是一张 224×224 的图。模型先把画面切分成 196 块 16×16 的 patch,再用线性映射把每一块变成 192 维向量——这就是patch token,你可以把 token 理解成模型眼中的"一句话":它不再逐像素看图,而是把每块图像当作一个可计算的单元。此外还会拼上两个特殊 token:汇总整图信息的CLS token,以及专为模仿教师软答案而生的distillation token,最终得到 198 个 token 的序列。

处理端:这 198 个 token 依次穿过 12 层编码块。每块里的多头自注意力让所有 patch 互相"交换信息",感受图像上下文;distillation token 则在每一层同步更新,把教师模型的知识一点点吸收进来。

输出端:CLS token 与 distillation token 各过一个分类头,得到两份打分(logits),两者取平均后就是最终预测。这也解释了为什么它"又快又好"——蒸馏信号全程参与,而不是只改最后一步。

上图来自仓库技术报告 tech_reports/ViT-TTNN/vit.md,展示同族 ViT 模型的注意力计算如何映射到 Tenstorrent 硬件上,想看底层细节可以参考。

三步跑通第一个推理

Step 1 环境安装:装好 timm 推理依赖

该模型已内置在 timm 库中,你不需要额外下载权重文件,一个装好 PyTorch 的干净 Python 环境即可。执行一条命令装齐依赖:

pip install timm torch torchvision

✅ 装完后import timm不报错,就可以进入下一步。

Step 2 一次前向推理:8 行代码出分类结果

加载预训练 checkpoint,按模型自带的数据变换配置做预处理,再对一张本仓库的样例图做前向。最后一行打印预测类别索引:

import timm from PIL import Image model = timm.create_model("deit_tiny_distilled_patch16_224.fb_in1k", pretrained=True).eval() cfg = timm.data.resolve_model_data_config(model) tfm = timm.data.create_transform(**cfg, is_training=False) img = Image.open("models/sample_data/huggingface_cat_image.jpg") print(model(tfm(img).unsqueeze(0)).argmax(-1))

样例图直接取自仓库:models/sample_data/huggingface_cat_image.jpg,无需从网络拉取。

Step 3 抽取特征向量:拿 192 维图像嵌入

如果你的目标是相似度检索或特征存储,而非类别预测,把num_classes设为 0 去掉分类头,改调forward_features,即可得到形状为(1, 198, 192)的 token 序列:

feat_model = timm.create_model( "deit_tiny_distilled_patch16_224.fb_in1k", pretrained=True, num_classes=0, ).eval() feat = feat_model.forward_features(tfm(img).unsqueeze(0)) print(feat.shape) # torch.Size([1, 198, 192])

落地场景对照

场景为什么适合
手机 App 端图像识别5.9M 参数 + 1.3 GMACs,端侧 NPU/手机芯片可轻松承载
物联网边缘视觉分析无 GPU 依赖,功耗低,适合常电受限的传感器节点
高并发实时分类服务单样本计算量小,同等算力下可支撑更高 QPS
轻量特征检索与去重192 维嵌入索引成本低,便于做相似图匹配

参考与延伸

论文引用(bibtex):

@InProceedings{pmlr-v139-touvron21a, title = {Training contenteditable="false">【免费下载链接】tt-metal:metal: TT-NN operator library, and TT-Metalium low level kernel programming model.项目地址: https://gitcode.com/GitHub_Trending/ttm/tt-metal

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

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

4平台6.4万饰品|Steam挂刀行情站跑通流程

4平台6.4万饰品|Steam挂刀行情站跑通流程 【免费下载链接】SteamTradingSiteTracker Steam 挂刀行情站 —— 24小时更新的 BUFF & IGXE & C5 & UUYP & ECO 挂刀比例数据 | Track cheap Steam Community Market items on buff.163.com, igxe.cn, c5g…

作者头像 李华
网站建设 2026/10/23 2:13:26

YimMenuV2:GTA 5 增强版菜单工具完整部署指南与功能实战教程

YimMenuV2:GTA 5 增强版菜单工具完整部署指南与功能实战教程 【免费下载链接】YimMenuV2 Experimental menu for GTA 5: Enhanced 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenuV2 如果你刚上手 GTA 5 增强版,最想做的往往是三件事&…

作者头像 李华
网站建设 2026/10/23 2:12:45

【Kali 渗透测试】漏洞学习笔记

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

作者头像 李华
网站建设 2026/10/23 2:11:10

Win32汇编消息循环与窗口过程:从入门到实战

1. 学到这里为止,Win32汇编最值得花时间的地方出现了走到第十部分,前面那些寄存器、寻址、基础指令和子程序调用,基本上已经被你磨得差不多了。这一篇我想认真聊聊 Win32 汇编里一个绕不开的分水岭——消息循环与窗口过程。很多人在这个节点之…

作者头像 李华