如何10分钟跑通tiny_vit_21m_224.in1k:从零开始的第一次图像分类教程

【免费下载链接】tiny_vit_21m_224.in1k

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

tiny_vit_21m_224.in1k 是 timm 库中一个轻量级TinyViT 图像分类模型(仅 21.2M 参数),由论文作者在 ImageNet-1k 上完成预训练,可输出 1000 个物体类别的概率,还能提取特征图与图像嵌入向量。本文将带你从零开始,10 分钟内跑通你的第一次图像分类推理 🚀

认识 tiny_vit_21m_224.in1k:它到底能做什么?

属性说明
模型类型图像分类 / 特征骨干网络
参数量21.2M(约 85MB,非常轻量)
计算量4.1 GMACs,推理速度快
输入尺寸224 × 224
输出类别1000 类(ImageNet-1k)
训练数据ImageNet-1k

💡 名字怎么读?tiny_vit_21m= 小型 Vision Transformer,约 21M 参数;224= 输入图像边长;in1k= ImageNet-1k 预训练。

本仓库是一个标准的 Hugging Face 模型仓库,文件结构非常简洁:

文件作用
README.md模型卡片,包含模型详情与全部使用示例
config.json模型架构与推理配置(输入尺寸、归一化参数等)
model.safetensors模型权重文件(约 85MB,safetensors 格式)
pytorch_model.bin模型权重文件(约 85MB,传统 PyTorch 格式)

一键安装步骤:准备运行环境

只需要安装 3 个依赖,一行命令搞定:

pip install timm torch pillow
  • timm:PyTorch 官方视觉模型库,内置 TinyViT 架构
  • torch:深度学习框架(有 GPU 会自动启用 CUDA)
  • pillow:图片读取工具

最快配置方法:5 行代码完成第一次图像分类

下面这段代码直接来自官方模型卡片 README.md,只需把它保存为classify.py,再准备一张本地图片(比如cat.jpg)即可运行:

from PIL import Image import timm import torch # 1️⃣ 读取本地图片 img = Image.open("cat.jpg") # 2️⃣ 加载预训练模型 model = timm.create_model('tiny_vit_21m_224.in1k', pretrained=True) model.eval() # 3️⃣ 自动获取模型专用变换(缩放 + 归一化) data_config = timm.data.resolve_model_data_config(model) transforms = timm.data.create_transform(**data_config, is_training=False) # 4️⃣ 推理并取 Top5 预测 with torch.no_grad(): output = model(transforms(img).unsqueeze(0)) # 扩展成 batch top5_prob, top5_idx = torch.topk(output.softmax(dim=1) * 100, k=5) for prob, idx in zip(top5_prob[0], top5_idx[0]): print(f"类别 {idx}: {prob:.2f}%")

运行python classify.py,你会看到类似这样的输出:

类别 281: 62.35% # tabby, tabby cat 类别 283: 21.17% # tiger cat 类别 282: 8.94% # Egyptian cat 类别 285: 2.60% # Siamese cat 类别 280: 1.82% # Persian cat

✅ 恭喜你!10 分钟内就完成了一个 ImageNet 1000 类图像分类器的推理。

看懂 config.json:推理配置的来龙去脉

config.json 里藏着模型推理的关键参数,timm加载模型时会自动读取它们:

配置项值含义
input_size[3, 224, 224]输入为 3 通道 224×224 图像
mean/std[0.485, 0.456, 0.406]等ImageNet 标准归一化均值/方差
crop_pct0.95推理时中心裁剪比例
interpolationbicubic缩放图像使用的插值方式
num_classes1000分类头输出维度

代码中的resolve_model_data_config()+create_transform()就是把这些配置自动转化为"缩放 → 中心裁剪 → 归一化"的完整预处理流水线,你不需要手写任何归一化数字,这也是 timm 相比手动搭流程最省事的地方。

进阶玩法:提取特征图与图像嵌入

模型卡片 README.md 还提供了两个进阶用法,改一行参数即可切换:

① 提取多层特征图(可用于目标检测、分割等下游任务):

model = timm.create_model('tiny_vit_21m_224.in1k', pretrained=True, features_only=True) # 输出 4 层特征图:96@56×56、192@28×28、384@14×14、576@7×7

② 输出图像嵌入向量(可用于以图搜图、图像相似度计算):

model = timm.create_model('tiny_vit_21m_224.in1k', pretrained=True, num_classes=0) # 输出 576 维嵌入向量

常见问题 FAQ

Q1:第一次运行为什么比较慢?pretrained=True会首次自动下载约 85MB 的权重文件(对应本仓库的 model.safetensors / pytorch_model.bin),之后会走缓存,秒级加载。

Q2:没有 GPU 能跑吗?可以。模型只有 21.2M 参数、4.1 GMACs 计算量,普通 CPU 上单张图片推理也能在 1 秒内完成,是 TinyViT"小而快"设计的直接体现。

Q3:输入图片尺寸必须是 224×224 吗?交给transforms即可,它会自动把图片 resize/center crop 到 224×224;模型本身fixed_input_size为false,也支持其他尺寸输入。

Q4:权重文件只有 133 字节?这是正常的——它们是 Git LFS 指针文件,实际 85MB 的权重内容在拉取时会通过 LFS 自动还原,不影响使用。

总结

  • 🎯 tiny_vit_21m_224.in1k 是 timm 生态里"轻量 + 高精度"的图像分类利器
  • 📦 一条命令安装依赖,5 行核心代码即可完成 1000 类图像分类
  • 🔧 改一个参数即可切换为特征提取或图像嵌入模式
  • 📄 更多细节可查阅仓库内的 README.md 与 config.json

跑通只是起点——把它当作下游任务(检测、分割、检索)的骨干网络,是下一步最值得尝试的方向。

【免费下载链接】tiny_vit_21m_224.in1k

项目地址:https://ai.gitcode.com/hf_mirrors/timm/tiny_vit_21m_224.in1k
点击查看免费下载
上一篇:一键导出QQ空间十年老说说:GetQzonehistory使用全流程
下一篇:QQ空间数据备份,5分钟搬回自己电脑

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

相关新闻

Magisk_AsoulOpt 游戏线程优化完整指南:三分钟让你的手机游戏跑得更稳

Magisk_AsoulOpt 游戏线程优化完整指南:三分钟让你的手机游戏跑得更稳

Magisk_AsoulOpt 游戏线程优化完整指南:三分钟让你的手机游戏跑得更稳 【免费下载链接】Magisk_AsoulOpt 项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk_AsoulOpt Magisk_AsoulOpt 是一款 Android 游戏线程调整程序(Game threads tw…

2026/10/21 2:12:48 阅读更多 →
Git教程

Git教程

/* 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:11:47 阅读更多 →
STM32F103驱动AT24C02 EEPROM的I2C硬件时序与稳定读写实战

STM32F103驱动AT24C02 EEPROM的I2C硬件时序与稳定读写实战

/* 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:11:47 阅读更多 →

最新新闻

Quartz动态设置并发数量

Quartz动态设置并发数量

/* 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:48:00 阅读更多 →
AI Agent ROI评估指南:从成本结构到收益测算全解析

AI Agent ROI评估指南:从成本结构到收益测算全解析

1. 先别急着算账,想清楚AI Agent的ROI和传统IT项目有什么不同这两年不少公司都开始折腾AI Agent,有的把它接到客服系统,有的让它帮着写代码,还有的用它处理合同和报表。但当你真坐下来算这笔账时,会发现一个尴尬的问题…

2026/10/21 2:48:00 阅读更多 →
基于卷积神经网络的食物图像识别实战:从ResNet迁移学习到部署

基于卷积神经网络的食物图像识别实战:从ResNet迁移学习到部署

简介:基于卷积神经网络的食物图像识别项目完整代码与数据包,面向具备Python基础并希望实践CNN图像分类的开发者与学习者。资源围绕TensorFlow与tf.keras构建食物识别模型,涵盖数据预处理、网络定义、训练评估与预测全流程,并引入迁…

2026/10/21 2:48:00 阅读更多 →
SECS-II/HSMS调试工具实战:从协议原理到模拟器应用

SECS-II/HSMS调试工具实战:从协议原理到模拟器应用

简介:面向半导体制造与MES系统集成场景,这份SECS-II HSMS调试工具模拟器适合设备工程师、上位机开发人员使用。它可模拟客户端与服务端,用于验证自定义程序是否符合SECS-II通信标准,减少现场联调时的错误与返工。压缩包为rar格式&…

2026/10/21 2:48:00 阅读更多 →
eNSP校园网拓扑设计实战:VLAN划分、DHCP配置与静态路由全解析

eNSP校园网拓扑设计实战:VLAN划分、DHCP配置与静态路由全解析

简介:面向计算机网络期末设计、课程设计及eNSP仿真练习的完整项目资料包,围绕某中学校园网络拓扑设计展开。方案包含网络拓扑选型、综合布线系统规划、教学楼/行政楼/宿舍接入设计,以及VLAN划分、IP地址分配、路由协议配置等模拟配置要点&…

2026/10/21 2:48:00 阅读更多 →
思科模拟器6.2:从安装到避坑的完整实战指南

思科模拟器6.2:从安装到避坑的完整实战指南

简介:这是一份思科模拟器6.2安装包,官方名称为Packet Tracer,面向网络技术学习者、思科认证考生以及开展网络实验教学的教师。软件以图形化方式搭建虚拟网络环境,可模拟路由器、交换机、无线接入点、防火墙等设备,支持…

2026/10/21 2:47:00 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/20 9:50:45 阅读更多 →