Mobilenetv3_small_075.lamb_in1k实战案例:如何用预训练模型实现Top5图像分类预测?
【免费下载链接】mobilenetv3_small_075.lamb_in1k项目地址: https://ai.gitcode.com/hf_mirrors/YunnanAICC/mobilenetv3_small_075.lamb_in1k
Mobilenetv3_small_075.lamb_in1k是一款轻量级预训练图像分类模型,专为移动设备和资源受限场景优化,能够高效实现图像分类任务并返回Top5预测结果。本文将通过完整实战案例,带你快速掌握使用该模型进行图像分类预测的方法。
📋 准备工作:环境搭建与依赖安装
要开始使用Mobilenetv3_small_075.lamb_in1k模型,首先需要准备好运行环境和相关依赖库。项目提供了详细的依赖清单,确保你能顺利运行预测程序。
1. 克隆项目仓库
git clone https://gitcode.com/hf_mirrors/YunnanAICC/mobilenetv3_small_075.lamb_in1k cd mobilenetv3_small_075.lamb_in1k2. 安装依赖包
项目的依赖文件位于examples/requirements.txt,包含了所有必要的Python库,如PyTorch、timm、Pillow等。使用pip安装依赖:
pip install -r examples/requirements.txt主要依赖版本说明:
- torch==2.1.0:深度学习框架
- timm==1.0.9:PyTorch图像模型库
- pillow==10.4.0:图像处理库
- requests==2.32.2:网络请求库
🚀 快速上手:运行图像分类预测
项目提供了完整的推理脚本,只需简单几步即可实现图像分类预测。下面我们将使用示例脚本进行Top5图像分类预测。
1. 执行预测脚本
项目中的examples/run_infer.sh是一个便捷的bash脚本,用于启动预测程序。运行以下命令:
cd examples ./run_infer.sh ../pytorch_model.bin脚本会自动调用examples/inference.pyPython程序,并加载模型文件../pytorch_model.bin进行预测。
2. 预测过程解析
让我们看看examples/inference.py的核心工作流程:
- 设备选择:自动检测是否有NPU设备,优先使用NPU加速,否则使用CPU
- 图像加载:从网络加载示例图像(COCO数据集图片)
- 模型加载:使用timm库加载预训练的Mobilenetv3_small_075.lamb_in1k模型
- 图像预处理:应用模型特定的图像变换(归一化、调整大小等)
- 模型推理:对预处理后的图像进行分类预测
- 结果处理:计算Top5概率和对应的类别索引并输出
核心代码片段:
# 加载模型 model = timm.create_model('mobilenetv3_small_075.lamb_in1k', pretrained=True).to(device) 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).to(device)) top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)📊 预测结果解读
运行预测脚本后,你将看到类似以下的输出(具体数值可能因环境略有差异):
Current path: /data/web/disk1/git_repo/hf_mirrors/YunnanAICC/mobilenetv3_small_075.lamb_in1k/examples model_path:../pytorch_model.bin, device:cpu tensor([[281, 27, 282, 285, 287]])这里输出的是Top5预测结果的类别索引,对应ImageNet数据集的类别标签。你可以通过查询ImageNet类别映射表,将这些索引转换为具体的类别名称。
⚙️ 自定义预测:使用自己的图片
要使用自己的图片进行预测,只需修改examples/inference.py中的图像加载部分:
- 将第36-37行的网络图片加载代码:
url = "http://images.cocodataset.org/val2017/000000039769.jpg" img = Image.open(requests.get(url, stream=True).raw)- 替换为本地图片加载代码:
img = Image.open("your_image_path.jpg") # 替换为你的图片路径- 重新运行预测脚本即可得到自定义图片的分类结果。
📝 总结
Mobilenetv3_small_075.lamb_in1k模型为图像分类任务提供了高效轻量的解决方案,特别适合在资源受限的环境中使用。通过本文介绍的方法,你可以快速实现Top5图像分类预测功能。项目的examples目录提供了完整的演示代码,包括推理脚本inference.py、运行脚本run_infer.sh和依赖清单requirements.txt,帮助你轻松上手。
无论是移动应用开发、嵌入式系统还是边缘计算场景,Mobilenetv3_small_075.lamb_in1k都能为你提供快速准确的图像分类能力。现在就尝试使用这个预训练模型,为你的项目添加强大的图像识别功能吧!
【免费下载链接】mobilenetv3_small_075.lamb_in1k项目地址: https://ai.gitcode.com/hf_mirrors/YunnanAICC/mobilenetv3_small_075.lamb_in1k
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考