qq_34566203/rizvandwiki--gender-classification-ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Gender Classification (ViT) on Ascend NPU

1. 简介

本文档记录 rizvandwiki/gender-classification 在 Ascend 910B3 NPU 环境下的适配与验证结果。

该模型基于 Vision Transformer(ViT)架构(google/vit-base-patch16-224-in21k 微调),用于人脸图像的性别分类,支持 2 个类别:

  • female:女性
  • male:男性

模型在测试集上达到 92.44% 的准确率。

本仓库提供:

  • inference.py:NPU 推理脚本,支持单张/批量图片性别分类
  • eval.py:精度与性能评测脚本
  • log.txt:评测运行日志

相关获取地址:

  • 权重下载地址(HuggingFace):https://huggingface.co/rizvandwiki/gender-classification
  • 镜像加速:https://hf-mirror.com

2. 验证环境

组件版本
torch2.8.0
torch_npu2.8.0.post4
transformers4.57.6
  • NPU:Ascend 910B3,1 逻辑卡
  • 模型架构:ViTForImageClassification(ViT-base)
  • 隐藏层维度:768
  • 注意力头数:12
  • 隐藏层数:12
  • 输入尺寸:224x224 RGB
  • Patch 大小:16x16
  • 分类数:2(female, male)

3. 推理启动

启动前可先检查 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.jpg

CPU 推理(参考基准):

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
    }
  ]
}

4. Smoke 验证

python inference.py --image test_images/female_face_a.jpg

预期输出:

  • 返回 JSON 格式结果
  • prediction 为性别分类结果(female/male)
  • confidence 为置信度(0~1)
  • 推理时间应在百毫秒以内

验证结果:

  • 推理在 NPU 上正常完成
  • 输出格式符合预期

5. 性能参考

测试条件:4 张图片,batch_size=4。

指标CPUNPU
avg_time0.9006 s0.0201 s
speedup-44.79x

注:本性能为处理单张图片的时间。CPU 推理耗时较长(~0.9s),NPU 推理显著加速。

6. 精度评测

精度评测采用预测一致率和概率误差双指标。

指标数值
测试图片数4
最大概率绝对误差2.0868e-04
平均概率绝对误差2.0861e-04
预测一致率4/4 (100.00%)
错误率0.00%
精度要求(错误率 < 1%)通过

结论:NPU 与 CPU 的分类预测结果完全一致(100%),概率误差极小,精度通过验证。

7. 注意事项

  1. 图片预处理:使用 ViTImageProcessor 自动进行 resize(224x224)、rescale 和 normalize。
  2. 图片格式:支持 JPG、PNG、BMP 等常见格式,内部自动转换为 RGB 三通道。
  3. 测试图片:本仓库的 test_images/ 为程序生成的合成人脸图片,仅用于精度对比测试,不能反映模型在真实数据上的分类准确率。
  4. ViT 优势:与 CNN 模型相比,ViT 通过自注意力机制捕获全局特征,在 NPU 上利用矩阵运算加速效果显著。
  5. 应用场景:适合作为人脸分析管线中的性别识别组件,配合人脸检测模型使用效果更佳。