deit_tiny_distilled_patch16_224.fb_in1k模型详解:从16x16补丁嵌入到双分类头的架构解析
【免费下载链接】deit_tiny_distilled_patch16_224.fb_in1k项目地址: https://ai.gitcode.com/hf_mirrors/timm/deit_tiny_distilled_patch16_224.fb_in1k
deit_tiny_distilled_patch16_224.fb_in1k是一个基于DeiT架构的图像分类模型,通过蒸馏技术在ImageNet-1k数据集上训练而成,非常适合新手和普通用户理解视觉Transformer的核心原理与应用。
🌟 模型核心特性速览
基础参数一览
- 模型类型:图像分类/特征提取骨干网络
- 参数量:5.9M(百万)
- 计算量:1.3 GMACs
- 激活值:6.0M
- 输入尺寸:224×224像素(RGB三通道)
独特优势
- 蒸馏优化:通过引入蒸馏令牌(distillation token)提升性能
- 轻量级设计:在保持高精度的同时大幅降低计算资源需求
- 双分类头结构:同时输出主分类头和蒸馏分类头,增强学习能力
🔍 架构解析:从输入到输出的完整流程
1. 16×16补丁嵌入(Patch Embedding)
模型首先将224×224的输入图像分割为16×16的非重叠补丁,每个补丁通过线性投影转换为192维的特征向量。这一步由模型配置中的patch_embed.proj层实现,是视觉Transformer将图像转化为序列数据的关键步骤。
2. 特殊令牌注入
在补丁序列前添加两个特殊令牌:
- 分类令牌(class token):用于最终分类决策
- 蒸馏令牌(distillation token):用于从教师模型学习知识
3. Transformer编码器
包含多个注意力层和前馈网络,处理补丁序列特征。模型配置中的num_features: 192定义了Transformer隐藏层的维度,通过自注意力机制捕捉图像全局上下文信息。
4. 双分类头输出
最终通过两个分类头输出结果:
- 主分类头(
head) - 蒸馏分类头(
head_dist)
这种双输出结构是DeiT蒸馏技术的核心,通过联合优化两个分类头的损失函数提升模型泛化能力。
🚀 快速上手使用指南
环境准备
首先克隆模型仓库:
git clone https://gitcode.com/hf_mirrors/timm/deit_tiny_distilled_patch16_224.fb_in1k图像分类基础示例
from urllib.request import urlopen from PIL import Image import timm # 加载图像 img = Image.open(urlopen( 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png' )) # 创建模型 model = timm.create_model('deit_tiny_distilled_patch16_224.fb_in1k', pretrained=True) model = model.eval() # 获取模型特定的预处理变换 data_config = timm.data.resolve_model_data_config(model) transforms = timm.data.create_transform(**data_config, is_training=False) # 执行推理 output = model(transforms(img).unsqueeze(0)) # 添加批次维度特征提取应用
通过移除分类层,可以将模型用作特征提取器:
model = timm.create_model( 'deit_tiny_distilled_patch16_224.fb_in1k', pretrained=True, num_classes=0, # 移除分类器 ) output = model.forward_features(transforms(img).unsqueeze(0)) # 获取特征📊 模型配置深度解析
配置文件config.json包含关键参数:
- 输入预处理:mean [0.485, 0.456, 0.406],std [0.229, 0.224, 0.225]
- 裁剪参数:crop_pct 0.9,采用中心裁剪模式
- 架构标识:
"architecture": "deit_tiny_distilled_patch16_224" - 分类器结构:
"classifier": ["head", "head_dist"]明确双分类头设计
📚 相关资源
论文引用
@InProceedings{pmlr-v139-touvron21a, title = {Training contenteditable="false">【免费下载链接】deit_tiny_distilled_patch16_224.fb_in1k
项目地址: https://ai.gitcode.com/hf_mirrors/timm/deit_tiny_distilled_patch16_224.fb_in1k创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考