如何用5行代码跑通cait_xxs24_224.fb_dist_in1k:图像分类新手快速上手教程(附完整代码)

【免费下载链接】cait_xxs24_224.fb_dist_in1k

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

cait_xxs24_224.fb_dist_in1k 是 timm 库中的一个CaiT(Class-attention Image Transformer)轻量级图像分类模型,由 Meta 论文作者基于知识蒸馏在 ImageNet-1k 上预训练,仅1200 万参数、2.5 GMACs 的极低成本,却能识别 1000 类物体。本教程带你5 行核心代码跑通图像分类,零基础也能快速上手 🚀

一、模型概览:CaiT 是什么?

CaiT 的核心思想是引入**类别注意力(Class Attention)**机制,让图像块(patch)直接与类别 token 交互,结构比传统 ViT 更简单高效。本模型的完整说明见 README.md。

项目参数
参数量12.0 M(约 24 MB)
计算量2.5 GMACs
输入尺寸224 × 224 像素
输出类别1000 类(ImageNet-1k)
预训练方式ImageNet-1k + 知识蒸馏(fb_dist_in1k)
权重文件model.safetensors(推荐)/ pytorch_model.bin

💡12M 参数意味着什么?它的体量只有 ResNet-50 的三分之一左右,适合 CPU 推理、端侧部署,是做图像分类入门的"高性价比"选择。

二、环境准备:1分钟装好依赖

只需两个 Python 包,一条命令完成安装:

pip install timm torch pillow

模型权重首次运行时会自动下载缓存,无需手动拷贝。如果你把本仓库放在本地,也可直接使用其中的 model.safetensors,它与 HuggingFace 权重格式完全兼容。

三、5 行核心代码:图像分类快速上手

下面是完整可运行的最小示例,核心逻辑就是 5 行 🎯:

import timm import torch from PIL import Image model = timm.create_model('cait_xxs24_224.fb_dist_in1k', pretrained=True).eval() img = Image.open('cat.jpg') transforms = timm.data.create_transform(**timm.data.resolve_model_data_config(model), is_training=False) logits = model(transforms(img).unsqueeze(0)) print(torch.topk(logits.softmax(dim=1) * 100, k=5))

逐行解析:每行代码在做什么?

行代码作用
1创建模型并加载预训练权重,eval()关闭训练模式
2用 PIL 打开一张本地图片(如cat.jpg)
3自动生成模型专属预处理:Resize 224、按 config.json 中的均值/方差做归一化
4图片送入模型,输出 1000 个未归一化的分数(logits)
5取 Top5 类别,softmax 后 ×100 变成百分比

运行后你会看到类似这样的输出:

tensor([87.32, 8.15, 2.10, ...]) # Top5 概率(%) tensor([281, 282, 279, 274, 280]) # 对应 ImageNet 类别编号

📌 类别编号与名称的对应关系可在 ImageNet-1k 标准列表中查询,281 就是"暹罗猫(Siamese cat)"。

四、进阶玩法:提取图像特征向量

除了分类,该模型还能当特征提取器,为图片生成固定长度的向量,用于图像检索、相似度比较等场景。参考 README.md 中的官方示例:

model = timm.create_model('cait_xxs24_224.fb_dist_in1k', pretrained=True, num_classes=0) feats = model(transforms(img).unsqueeze(0)) # 输出 (1, 192),即 192 维特征

只需加一个num_classes=0参数去掉分类头,feats就是 192 维特征向量——维度由 config.json 中的num_features: 192决定。

五、读懂配置:config.json 里藏着什么?

打开 config.json,几个关键字段一眼看懂:

  • input_size: [3, 224, 224]— 输入必须是 3 通道、224×224 的 RGB 图
  • mean/std— 归一化参数,create_transform()会自动使用,无需手写
  • num_classes: 1000— 输出 1000 类
  • fixed_input_size: true— 输入尺寸固定,建议不要随意改分辨率

六、新手常见坑:一次说清 ⚠️

  1. 图片尺寸不对报错?交给create_transform()处理即可,它会自动 Resize 到 224;不要自己先img.resize((224, 224))再送进 transform,会破坏归一化流程。
  2. 忘记.eval()结果不稳定?Transformer 类模型在训练/推理模式下行为不同,务必调用model.eval()。
  3. 输出不是概率?model(...)输出的是 logits,需softmax转换;本教程第 5 行已包含这一步。
  4. 想换权重格式?仓库同时提供 model.safetensors(更安全、加载更快)和 pytorch_model.bin,二者内容一致,任选其一。

七、总结与下一步

步骤内容耗时
1pip install timm torch pillow1 分钟
2跑通第三节 5 行核心代码2 分钟
3尝试第四节提取 192 维特征3 分钟

恭喜,你已经掌握了timm 图像分类模型的标准调用姿势🎉 后续可以沿着以下方向继续探索:

  • 换更大的 CaiT 或 DeiT 系列模型,对比精度与速度
  • 用forward_features输出 (1, 197, 192) 的 token 级特征做细粒度分析
  • 阅读 README.md 查看论文引用与模型出处,理解 Class Attention 原理

模型来源:README.md 中给出了官方论文引用(Going Deeper With Image Transformers, ICCV 2021),论文作者基于 Meta 的 deit 训练代码完成蒸馏预训练,采用 Apache-2.0 许可证,可放心用于学习与商业场景。

【免费下载链接】cait_xxs24_224.fb_dist_in1k

项目地址:https://ai.gitcode.com/hf_mirrors/timm/cait_xxs24_224.fb_dist_in1k
点击查看免费下载
上一篇:推理模型为何越思考越强:Hands-On Modern RL推理时计算扩展与思维链训练揭秘
下一篇:Airtest 图像识别核心:aircv.template 模板匹配模块源码级解析(find_template 与 find_all_template)

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

相关新闻

木门产品知识全解析:从分类、材质到测量安装避坑指南

木门产品知识全解析:从分类、材质到测量安装避坑指南

简介:这是一份面向木门行业从业者(销售、门店人员、安装技工)的产品知识培训资料,以单份doc文档收录,共1个文件,压缩包约3.28MB。内容从门的文化内涵、历史演变切入,系统梳理门按材质、开启方式…

2026/10/20 2:02:14 阅读更多 →
AGI时代开发者指南:大模型应用、RAG与Agent工程实践

AGI时代开发者指南:大模型应用、RAG与Agent工程实践

如果只看表面的技术动态,AGI时代给人的感觉是“模型又变强了”;但站在开发者角度,我更愿意把它理解为一次开发范式的变化:以前我们通过编写规则让软件工作,现在越来越多的工作变成了通过提示词、检索、工具调用和智能体…

2026/10/20 2:02:14 阅读更多 →
把AO接回来:黑线与白底之间差了多少空间关系

把AO接回来:黑线与白底之间差了多少空间关系

/* 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 2:02:14 阅读更多 →

最新新闻

13 Token/s 值得欢呼吗:端侧多模态的“能跑“与“好用“之间还隔着什么

13 Token/s 值得欢呼吗:端侧多模态的“能跑“与“好用“之间还隔着什么

13 Token/s 值得欢呼吗:端侧多模态的"能跑"与"好用"之间还隔着什么 【免费下载链接】MiniCPM-V-4.7-35B-A3B MiniCPM-V 4.7 是 MiniCPM-V 系列的最新模型,提供 35B-A3B 变体,其中 35B-A3B 是 MiniCPM-V 系列中的首个 MoE…

2026/10/20 2:40:37 阅读更多 →
一小时净增 149 星:LightCraft 正把 GitHub 趋势榜刷成 Rust 专场

一小时净增 149 星:LightCraft 正把 GitHub 趋势榜刷成 Rust 专场

一小时净增 149 星:LightCraft 正把 GitHub 趋势榜刷成 Rust 专场 【免费下载链接】lightcraft LightCraft: An open-source non-destructive photo editor written by scratch in pure Rust 项目地址: https://gitcode.com/gh_mirrors/li/lightcraft 2026 年…

2026/10/20 2:40:37 阅读更多 →
ARMCC编译器安装配置指南:解决老工程编译报错与版本兼容问题

ARMCC编译器安装配置指南:解决老工程编译报错与版本兼容问题

简介:ARM Compiler Version 5(ARMCC)是ARM公司面向ARM架构处理器推出的高效编译工具链,适合嵌入式开发工程师、物联网与汽车电子从业者,以及需要为Cortex-A/R/M系列编写、编译和优化底层软件的开发者。资源包共650个文…

2026/10/20 2:40:37 阅读更多 →
AI赋能学术专著写作:知识工程视角下的完整工具链与实操工作流

AI赋能学术专著写作:知识工程视角下的完整工具链与实操工作流

前阵子有作者找我聊书稿的事,说他手里研究资料攒了一堆,想整理成一部学术专著,可两三年过去,目录还在改第N版。这种事我见得不少——专著不是论文,动辄二三十万字,写作周期按年算,真正卡人的往往…

2026/10/20 2:40:37 阅读更多 →
ARM编译器版本5(AC5)工具链详解:从armcc到fromelf的嵌入式开发实践

ARM编译器版本5(AC5)工具链详解:从armcc到fromelf的嵌入式开发实践

简介:ARM编译器版本5是ARM公司面向嵌入式系统开发者推出的优化编译工具,适用于从ARM7到ARM11及多核Cortex系列处理器的代码构建,帮助开发者在代码效率、资源占用与硬件兼容性之间取得平衡。资源包共3个文件,包含1个html发行说明、…

2026/10/20 2:40:37 阅读更多 →
三维可视化实践:用立方体同时展示等高线与方向标记

三维可视化实践:用立方体同时展示等高线与方向标记

做三维可视化时,我经常碰到一个很现实的问题:数据本身是三维的,但传统平面图只能表达二维关系。前阵子做一个地形相关的模拟项目,需要同时展示高度变化和方向趋势,一开始画了好几版平面等高线图,怎么看都别…

2026/10/20 2:39:36 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* 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 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* 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 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* 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 1:01:30 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54:50 阅读更多 →
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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →