首页 / 资讯中心 / 文章详情

pit_xs_224.in1k图像Embedding提取教程:num_classes=0与forward_features两种写法全解

pit_xs_224.in1k图像Embedding提取教程:num_classes=0与forward_features两种写法全解 ★ FEATURED ARTICLE
【免费下载链接】pit_xs_224.in1k项目地址https://ai.gitcode.com/hf_mirrors/timm/pit_xs_224.in1k点击查看免费下载本教程详解pit_xs_224.in1k图像模型的 Embedding 提取方法对比num_classes0参数与forward_features函数两种写法帮你在 timm 框架中快速拿到 384 维图像特征向量适用于检索、分类、迁移学习等场景。 模型简介pit_xs_224.in1k 是什么pit_xs_224.in1k是 timm 库中的一个轻量级图像分类模型全称PiT (Pooling based Vision Transformer)基于 ICCV 2021 论文《Rethinking Spatial Dimensions of Vision Transformers》实现。关键参数如下指标数值参数量10.6 M超轻量计算量 GMACs1.4输入尺寸224 × 224特征维度384 维预训练数据ImageNet-1k1000 类全局池化方式token 池化得益于仅 10.6M 的参数量它特别适合部署在对算力敏感的场景如移动端检索、批量图像指纹这也是它常被选作 Embedding 提取骨干的原因。 模型卡片详情可参考 README.md模型配置如num_features: 384、global_pool: token定义在 config.json 中。 为什么需要提取图像 Embedding直接把图片送入模型得到的是 1000 维的类别概率而Embedding特征向量才能表达这张图长什么样图像检索以图搜图用余弦相似度匹配迁移学习冻结特征层只训练分类头去重/聚类按 Embedding 距离合并相似图片多模态对齐与文本向量计算相似度pit_xs_224.in1k 提取出的向量形状为(batch_size, 384)可直接投入上述任务。 环境准备安装依赖与加载模型pip install timm torch加载模型只需一行import timm model timm.create_model(pit_xs_224.in1k, pretrainedTrue)pretrainedTrue表示下载 ImageNet-1k 预训练权重本仓库提供 model.safetensors 与 pytorch_model.bin 两种格式。预处理参数均值、标准差、crop 比例等可从config.json中的pretrained_cfg字段读到无需手调。 写法一num_classes0 移除分类头第一种最直观的写法是在创建模型时指定num_classes0timm 会自动移除末端的nn.Linear分类层前向传播直接输出特征向量import timm import torch from PIL import Image model timm.create_model( pit_xs_224.in1k, pretrainedTrue, num_classes0, # 移除分类头 nn.Linear ) model model.eval() # 自动获取模型推荐的数据预处理 data_config timm.data.resolve_model_data_config(model) transforms timm.data.create_transform(**data_config, is_trainingFalse) img Image.open(sample.jpg) output model(transforms(img).unsqueeze(0)) # 形状: (1, 384)关键要点num_classes0必须在create_model时设置本质是截掉分类头输出output形状为(batch_size, 384)即最终 Embeddingunsqueeze(0)用于给单张图补上 batch 维度预处理交给timm.data.create_transform自动生成保证与训练时一致 写法二forward_features forward_head 分步执行第二种写法不需要设置num_classes0保留完整模型结构通过显式调用forward_features获取未池化特征再用forward_head完成池化model timm.create_model(pit_xs_224.in1k, pretrainedTrue) model model.eval() data_config timm.data.resolve_model_data_config(model) transforms timm.data.create_transform(**data_config, is_trainingFalse) img Image.open(sample.jpg) x transforms(img).unsqueeze(0) # 第一步提取未池化特征 (1, 1, 384) features model.forward_features(x) # 第二步应用池化头得到 Embedding (1, 384) output model.forward_head(features, pre_logitsTrue)关键要点forward_features输出(1, 1, 384)是池化前的未展开张量forward_head(..., pre_logitsTrue)只做池化不做最后线性变换得到(1, 384)的最终 Embedding如果模型使用avgpool等空间池化模式此方式还能拿到中间层特征图pit_xs_224.in1k 采用token池化见 config.json 中global_pool字段因此两种写法结果一致⚖️ 两种写法全解怎么选对比项num_classes0forward_featuresforward_head是否需要改模型结构✅ 是移除分类头❌ 否模型保持完整代码量更短一步到位稍长分两步灵活性只能拿到最终 Embedding可拿到中间特征/未池化特征适合场景纯 Embedding 检索需要分析特征结构、多任务头输出形状(B, 384)(B, 1, 384)→(B, 384)选择建议只做以图搜图→ 用num_classes0代码最简洁需要中间层特征做可视化、探针probe→ 用forward_features分步写法后续还要微调分类头 → 保留完整模型写法二推理时按需切换 无论哪种写法都建议在提取向量前调用model.eval()并在with torch.no_grad():中推理以节省显存。 Embedding 的常见后续用法拿到(1, 384)的向量后典型操作包括# 归一化余弦相似度检索的标准做法 emb torch.nn.functional.normalize(output, dim1) # 与另一张图片的 Embedding 计算相似度 sim torch.cosine_similarity(emb1, emb2)批量提取时只要把多张图组成 batch 一次前向即可获得(N, 384)的特征矩阵直接喂给 FAISS 等检索库。❓ 常见问题FAQQ1num_classes0和forward_features输出不一样不会。pit_xs_224.in1k 使用 token 池化二者殊途同归都是 384 维向量。差异只在是否保留分类头这一结构层面。Q2图片尺寸不是 224×224 可以吗timm 的create_transform会自动完成 resize 与 center cropconfig.json中crop_pct: 0.9、crop_mode: center你只需传入任意尺寸的 PIL 图像。Q3想换其他池化方式怎么办创建模型时可传global_poolavg等参数替代默认的 token 池化此时用写法二forward_features获取空间特征图更灵活。 总结本教程完整解析了pit_xs_224.in1k 图像 Embedding 提取的两种核心写法✅num_classes0一步移除分类头拿到(B, 384)特征向量适合纯检索场景✅forward_featuresforward_head保留完整模型分步控制池化过程适合需要中间特征的高级用法10.6M 的参数量 384 维语义向量让 pit_xs_224.in1k 成为轻量级图像检索与迁移学习的理想选择。配合 README.md 中的完整示例你可以快速搭建起自己的图像 Embedding 流水线。赞分享【免费下载链接】pit_xs_224.in1k项目地址https://ai.gitcode.com/hf_mirrors/timm/pit_xs_224.in1k点击查看免费下载相关推荐swin_small_patch4_window7_224.ms_in1k 图像 Embedding 指南num_classes0 与 forward_features 的隐藏技巧swin_small_patch4_window7_224.ms_in1k 图像 Embedding 指南num_classes0 与 forward_fe人工智能计算机视觉如何用dpn68b.mx_in1k生成高质量图像Embeddingnum_classes0与forward_head两种路径详解如何用dpn68b.mx_in1k生成高质量图像Embeddingnum_classes0与forward_head两种路径详解 本文面向新手与普通用户详gbrain Minions 通用 Agent 编排协议从 Postgres 原生队列到跨平台 Agent 控制平面gbrain Minions 通用 Agent 编排协议从 Postgres 原生队列到跨平台 Agent 控制平面 本文基于 docs/designs/MI上一篇OpenClaw 接入 Together AI 实战指南API Key 认证、模型选择与视频生成配置下一篇fhEVM 智能合约 ACL 实战指南密文授权、访问校验与用户解密权限管理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站