本文档记录 rizvandwiki/gender-classification 在 Ascend 910B3 NPU 环境下的适配与验证结果。
该模型基于 Vision Transformer(ViT)架构(google/vit-base-patch16-224-in21k 微调),用于人脸图像的性别分类,支持 2 个类别:
female:女性male:男性模型在测试集上达到 92.44% 的准确率。
本仓库提供:
相关获取地址:
| 组件 | 版本 |
|---|---|
torch | 2.8.0 |
torch_npu | 2.8.0.post4 |
transformers | 4.57.6 |
Ascend 910B3,1 逻辑卡ViTForImageClassification(ViT-base)7681212224x224 RGB16x162(female, male)启动前可先检查 NPU 可用性:
python3 -c "import torch; print(f'NPU available: {torch.npu.is_available()}')"环境准备:
pip install torch torch_npu transformers Pillow
export ASCEND_RT_VISIBLE_DEVICES=0已验证通过的推理命令:
单张图片分类:
python inference.py --image path/to/face.jpg批量图片分类:
python inference.py --image-dir path/to/images/
python inference.py --image img1.jpg --image img2.jpgCPU 推理(参考基准):
python inference.py --device cpu --image path/to/face.jpg输出格式:
{
"model": "rizvandwiki--gender-classification",
"device": "npu:0",
"num_images": 1,
"inference_time_seconds": 0.025,
"results": [
{
"image": "face.jpg",
"prediction": "female",
"confidence": 0.9821
}
]
}python inference.py --image test_images/female_face_a.jpg预期输出:
prediction 为性别分类结果(female/male)confidence 为置信度(0~1)验证结果:
测试条件:4 张图片,batch_size=4。
| 指标 | CPU | NPU |
|---|---|---|
avg_time | 0.9006 s | 0.0201 s |
speedup | - | 44.79x |
注:本性能为处理单张图片的时间。CPU 推理耗时较长(~0.9s),NPU 推理显著加速。
精度评测采用预测一致率和概率误差双指标。
| 指标 | 数值 |
|---|---|
| 测试图片数 | 4 |
| 最大概率绝对误差 | 2.0868e-04 |
| 平均概率绝对误差 | 2.0861e-04 |
| 预测一致率 | 4/4 (100.00%) |
| 错误率 | 0.00% |
| 精度要求(错误率 < 1%) | 通过 |
结论:NPU 与 CPU 的分类预测结果完全一致(100%),概率误差极小,精度通过验证。
ViTImageProcessor 自动进行 resize(224x224)、rescale 和 normalize。test_images/ 为程序生成的合成人脸图片,仅用于精度对比测试,不能反映模型在真实数据上的分类准确率。