5分钟上手edgenext_x_small.in1k:transformers生态下的图像分类最佳实践
5分钟上手edgenext_x_small.in1k:transformers生态下的图像分类最佳实践
【免费下载链接】edgenext_x_small.in1k项目地址: https://ai.gitcode.com/hf_mirrors/timm/edgenext_x_small.in1k
edgenext_x_small.in1k是一款基于EdgeNeXt架构的轻量级图像分类模型,专为移动视觉应用设计,在保证高效性能的同时实现了卓越的分类精度。该模型在ImageNet-1k数据集上训练,仅包含2.3M参数和0.5 GMACs计算量,是transformers生态中图像分类任务的理想选择。
🚀 为什么选择edgenext_x_small.in1k?
超轻量架构,超强性能
- 极致轻量化:仅2.3M参数,适合部署在移动端和边缘设备
- 高效计算:0.5 GMACs低计算量,5.9M激活值,运行速度更快
- 高精度表现:在ImageNet-1k数据集上达到专业级分类效果
多场景应用能力
- 作为图像分类模型直接使用
- 作为特征提取 backbone 用于下游任务
- 生成图像嵌入向量用于相似度计算
⚡ 快速开始:5分钟安装与使用
1️⃣ 环境准备
首先克隆项目仓库:
git clone https://gitcode.com/hf_mirrors/timm/edgenext_x_small.in1k cd edgenext_x_small.in1k安装必要依赖:
pip install timm torch pillow2️⃣ 图像分类基础示例
以下是使用edgenext_x_small.in1k进行图像分类的完整代码:
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('edgenext_x_small.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)) # 添加批次维度 # 获取Top5预测结果 top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)3️⃣ 特征图提取
edgenext_x_small.in1k还可以作为特征提取器使用,获取不同层级的特征图:
model = timm.create_model( 'edgenext_x_small.in1k', pretrained=True, features_only=True, # 启用特征提取模式 ) model = model.eval() # 获取特征图 output = model(transforms(img).unsqueeze(0)) # 打印各层特征图形状 for o in output: print(o.shape) # 输出示例: # torch.Size([1, 32, 64, 64]) # torch.Size([1, 64, 32, 32]) # torch.Size([1, 100, 16, 16]) # torch.Size([1, 192, 8, 8])4️⃣ 生成图像嵌入向量
使用模型生成图像嵌入向量,可用于相似度计算等任务:
model = timm.create_model( 'edgenext_x_small.in1k', pretrained=True, num_classes=0, # 移除分类器 ) model = model.eval() # 获取图像嵌入 output = model(transforms(img).unsqueeze(0)) # 形状: (1, 192)📊 模型配置详解
edgenext_x_small.in1k的核心配置信息可在config.json中查看,主要参数包括:
- 输入尺寸:训练时256x256,测试时288x288
- 预处理参数:均值[0.485, 0.456, 0.406],标准差[0.229, 0.224, 0.225]
- 池化方式:平均池化(avg)
- 特征维度:192维
- 类别数量:1000类(ImageNet-1k)
📚 进阶应用建议
迁移学习
利用edgenext_x_small.in1k的预训练权重进行迁移学习,只需替换最后一层分类器:
model = timm.create_model('edgenext_x_small.in1k', pretrained=True, num_classes=10)模型优化
根据config.json中的参数调整输入尺寸和预处理方式,进一步优化模型性能:
data_config = { "input_size": [3, 224, 224], # 调整输入尺寸 "mean": [0.485, 0.456, 0.406], "std": [0.229, 0.224, 0.225], "crop_pct": 0.875 } transforms = timm.data.create_transform(**data_config, is_training=False)📝 引用与致谢
如果您在研究中使用了edgenext_x_small.in1k,请引用以下论文:
@inproceedings{Maaz2022EdgeNeXt, title={EdgeNeXt: Efficiently Amalgamated CNN-Transformer Architecture for Mobile Vision Applications}, author={Muhammad Maaz and Abdelrahman Shaker and Hisham Cholakkal and Salman Khan and Syed Waqas Zamir and Rao Muhammad Anwer and Fahad Shahbaz Khan}, booktitle={International Workshop on Computational Aspects of Deep Learning at 17th European Conference on Computer Vision (CADL2022)}, year={2022}, organization={Springer} }edgenext_x_small.in1k模型基于EdgeNeXt论文实现,原始代码仓库:https://github.com/mmaaz60/EdgeNeXt
通过以上简单步骤,您已经掌握了edgenext_x_small.in1k的核心使用方法。这款轻量级高效模型将为您的图像分类任务带来出色的性能和速度体验!
【免费下载链接】edgenext_x_small.in1k项目地址: https://ai.gitcode.com/hf_mirrors/timm/edgenext_x_small.in1k
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考