快速上手deit_tiny_patch16_224.fb_in1k:3行代码实现ImageNet-1k图像识别

【免费下载链接】deit_tiny_patch16_224.fb_in1k 【免费下载链接】deit_tiny_patch16_224.fb_in1k 项目地址: https://ai.gitcode.com/hf_mirrors/timm/deit_tiny_patch16_224.fb_in1k

deit_tiny_patch16_224.fb_in1k是一款基于DeiT架构的轻量级图像分类模型,由Facebook团队训练并开源,专为ImageNet-1k数据集优化。这款模型以仅5.7M的参数量和1.3 GMACs的计算量,实现了高效的图像识别能力,非常适合新手和普通用户快速部署图像分类任务。

为什么选择deit_tiny_patch16_224.fb_in1k? 🚀

超轻量级架构

该模型采用Transformer架构设计,通过16x16的图像分块(patch)策略,在保持识别精度的同时大幅降低计算资源需求。相比传统CNN模型,它在移动设备和低配置环境中表现更优。

即插即用的预训练权重

模型已在包含1000个类别的ImageNet-1k数据集上完成训练,开箱即可用于常见场景的图像分类任务,无需从零开始训练。

极简部署流程

借助PyTorch和timm库的支持,仅需3行核心代码即可完成模型加载、图像预处理和分类预测,极大降低了AI应用的入门门槛。

3行代码实现图像识别 👨‍💻

环境准备

首先确保已安装必要依赖:

pip install timm torch pillow

核心实现代码

import timm
from PIL import Image

# 加载预训练模型(第1行核心代码)
model = timm.create_model('deit_tiny_patch16_224.fb_in1k', pretrained=True).eval()

# 获取模型专用图像转换器(第2行核心代码)
transforms = timm.data.create_transform(**timm.data.resolve_model_data_config(model), is_training=False)

# 执行图像分类(第3行核心代码)
output = model(transforms(Image.open("test_image.jpg")).unsqueeze(0))

完整使用示例

from urllib.request import urlopen
from PIL import Image
import timm
import torch

# 加载图像
img = Image.open(urlopen(
    'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))

# 加载模型
model = timm.create_model('deit_tiny_patch16_224.fb_in1k', pretrained=True).eval()

# 图像预处理
data_config = timm.data.resolve_model_data_config(model)
transforms = timm.data.create_transform(**data_config, is_training=False)

# 预测并获取Top5结果
output = model(transforms(img).unsqueeze(0))
top5_prob, top5_idx = torch.topk(output.softmax(dim=1)*100, k=5)

print("Top5预测结果:")
for prob, idx in zip(top5_prob[0], top5_idx[0]):
    print(f"类别{idx}: {prob:.2f}%")

模型技术细节 📊

关键参数

  • 输入尺寸:224×224×3(RGB图像)
  • 分块大小:16×16像素
  • 特征维度:192
  • 分类头:全连接层(配置文件定义于config.json

数据预处理配置

模型要求特定的图像归一化参数,可通过以下代码获取:

print(timm.data.resolve_model_data_config(model))
# 输出:{'mean': [0.485, 0.456, 0.406], 'std': [0.229, 0.224, 0.225], ...}

高级应用:生成图像嵌入 🔍

除图像分类外,模型还可用于提取图像特征向量:

model = timm.create_model('deit_tiny_patch16_224.fb_in1k', pretrained=True, num_classes=0)
features = model(transforms(img).unsqueeze(0))  # 输出(1, 192)特征向量

这些特征可用于图像检索、相似度计算等下游任务,扩展模型的应用场景。

本地部署指南 📦

克隆项目仓库

git clone https://gitcode.com/hf_mirrors/timm/deit_tiny_patch16_224.fb_in1k
cd deit_tiny_patch16_224.fb_in1k

模型权重文件pytorch_model.bin和安全权重文件model.safetensors已包含在仓库中,无需额外下载。

总结

deit_tiny_patch16_224.fb_in1k凭借其轻量级设计和高效性能,成为图像分类任务的理想选择。无论是开发原型、教育学习还是实际应用部署,这款模型都能以极简的代码实现强大的功能。现在就尝试用3行代码开启你的图像识别之旅吧!

引用

@InProceedings{pmlr-v139-touvron21a,
  title =     {Training data-efficient image transformers & distillation through attention},
  author =    {Touvron, Hugo and Cord, Matthieu and Douze, Matthijs and Massa, Francisco and Sablayrolles, Alexandre and Jegou, Herve},
  booktitle = {International Conference on Machine Learning},
  pages =     {10347--10357},
  year =      {2021},
  volume =    {139}
}

【免费下载链接】deit_tiny_patch16_224.fb_in1k 【免费下载链接】deit_tiny_patch16_224.fb_in1k 项目地址: https://ai.gitcode.com/hf_mirrors/timm/deit_tiny_patch16_224.fb_in1k

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐