【研华AMD嵌入式主板AIMB-2210】01:图像分类实现
本帖最后由 eefocus_4150358 于 2025-11-7 14:56 编辑本篇内容主要介绍在研华AMD嵌入式主板AIMB-2210上实现图像分类。
评测模型选用ResNet50模型,使用RyzenAI软件准备、量化和部署INT8模型,最后使用python API将量化模型部署在NPU上,在数据集上评估量化模型的准确性。
1. AIMB-2210主板规格参数
AIMB-2210主板规格参数,可以访问研华官网链接:https://iotmart.advantech.com.cn ... AIMB-2210R-00A1.htm,它是研华首款搭载 AMD Ryzen 嵌入式 AI Mini-ITX 工业主板。
2. 环境准备
在环境准备之前,首先需要下载安装Anaconda,Anaconda的安装可以参考网上其他文章。
Anaconda安装完成后,创建一个虚拟环境。
接着安装所需要的依赖包,建议把这些依赖包列表整理进requirements.txt文件中,统一安装。
3. 下载ResNet50模型
下载资源包RyzenAI-SW-1.4.0(下载链接:https://github.com/amd/RyzenAI-SW/tree/1.4.0),资源包RyzenAI-SW-1.4.0中有关于模型下载的代码,找到并运行download_RestNet.py文件即可自动下载ResNet50模型。
4. 下载数据集
下载数据集压缩包val_images.tar.gz(下载链接:https://huggingface.co/datasets/imagenet-1k/tree/main/data)。
输入指令:
mkdir val_data && tar -xzf val_images.tar.gz -C val_data
python prepare_data.py val_data calib_data
创建测试集文件夹,解压验证集。
运行prepare_data.py来创建验证数据集和校准数据集。
5. 模型量化
使用model_quantization.py对ResNet50模型进行量化,本次选择量化为INT8格式。
到这里已经完成了图像分类量化模型的部署,最后在CPU/NPU上使用ImageNet数据集评估模型的准确性。
由于资源包中的文件配置有问题,不能正确地将推理任务在NPU上进行,因此需要对原来的代码进行修改。
首先可以参考Yolov8物体检测代码中的配置文件,将vaip_config文件复制到图像分类项目的文件夹中,
然后修改image_classification.py文件,修改的关键是给选择设备为npu时指定特殊的配置文件vaip_config。
另外,utils.py文件也需要修改。
CPU:
指令:python image_classification_fixed.py --model_input models\resnet50_int8.onnx --calib_data calib_data --device cpu --evaluate
NPU:
指令:python image_classification_fixed.py --model_input models\resnet50_int8.onnx --calib_data calib_data --device npu --evaluate
执行结果显示NPU的运行速度要快于CPU。
页:
[1]