本项目将 Kaloscope-2.0 艺术家风格分类模型 适配到单卡昇腾 NPU(Ascend910)上运行。
模型基于 LSNet-XL-448 架构,训练于 Danbooru 数据集(截至 2025 年 9 月),支持 39,261 个艺术家类别分类,参数量约 183M,Top-1 准确率达 90.13%。适配过程使用 ModelScope 本地权重加载。
| 项目 | 版本 |
|---|---|
| NPU | Ascend910 |
| CANN | 8.5.1 |
| Python | 3.11.14 |
| PyTorch | 2.x |
| torch_npu | 已安装 |
pip install -r requirements.txt
python inference.py推理结果 (NPU Top-5):
| 排名 | 类别 | 概率 |
|---|---|---|
| Top-1 | toshi_(hokkaido2015) | 0.2479 |
| Top-2 | kamimon2016 | 0.0190 |
| Top-3 | naora_yusuke | 0.0136 |
| Top-4 | chie_t19690428 | 0.0133 |
| Top-5 | tsuduki_neko | 0.0093 |
日志保存在 logs/inference.log。
对单张测试图片进行 CPU 与 NPU 一致性验证:
| 指标 | 数值 |
|---|---|
| max_abs_error | 0.023619 |
| mean_abs_error | 0.004104 |
| relative_error | 0.2633% |
| cosine_similarity | 0.999997 |
| threshold | 1.0% |
| 结果 | PASS |
CPU Top-1: toshi_(hokkaido2015) NPU Top-1: toshi_(hokkaido2015) Top-1 match: True
| 指标 | 数值 |
|---|---|
| avg_time_ms | 183.25 |
| min_time_ms | 183.07 |
| max_time_ms | 183.40 |
| p50_time_ms | 183.25 |
| p90_time_ms | 183.35 |
| p95_time_ms | 183.38 |
| throughput_images_per_sec | 5.46 |
本项目包含单图 smoke consistency 验证,非官方完整验证集评测。详细指标见第 4 节。
见 screenshots/self_verification.txt。
logs/inference.log — NPU 推理结果logs/accuracy.log — CPU-NPU 精度一致性logs/benchmark.log — NPU 性能基准.
├── model/ # LSNet 模型定义源码
│ ├── lsnet.py
│ ├── lsnet_artist.py
│ └── ska.py
├── model_utils.py # 模型加载与预处理
├── inference.py # NPU 单图推理
├── eval_accuracy.py # CPU-NPU 精度对比
├── benchmark.py # NPU 性能测试
├── requirements.txt # 依赖
├── assets/
│ └── test.jpg # 测试图片
├── screenshots/
│ └── self_verification.txt
├── logs/ # 运行日志(运行时生成)
└── README.mdmodel/ 目录中,无需额外克隆。model_ema 状态字典(推理质量更优),并去除 module. 前缀。model.eval(),以在 NPU 上重新计算 attention bias cache,避免跨设备张量错误。