C-RADIOv2-B 是一个90M参数的视觉Transformer模型,由NVIDIA开发。本项目提供其在华为 Ascend NPU 环境下的部署方案。
C-RADIOv2-B-ascend/
├── inference.py # 精度测试脚本
├── test.log # 测试日志
├── README.md # 本文档source /usr/local/Ascend/ascend-toolkit/set_env.shpip install transformers==4.36.0模型文件位于 /opt/atomgit/mxy/C-RADIOv2-B/ 目录下:
cd C-RADIOv2-B-ascend/
python3 inference.py --device npu:0| 指标 | 实测值 | 阈值 | 状态 |
|---|---|---|---|
| Summary相对误差 | 0.39% | < 1% | PASS |
| Features相对误差 | 0.35% | < 1% | PASS |
| 操作 | 耗时 |
|---|---|
| 模型加载 | 4.02s |
| NPU 推理 | 0.34s |
2026-05-19 10:47:13,576 - INFO - C-RADIOv2-B Ascend NPU Inference
2026-05-19 10:47:13,581 - INFO - Model path: /opt/atomgit/mxy/C-RADIOv2-B
2026-05-19 10:47:13,581 - INFO - Device: npu:0
2026-05-19 10:47:17,599 - INFO - Model loaded on device: npu:0
2026-05-19 10:47:17,599 - INFO - Model loaded in 4.02s
2026-05-19 10:47:17,857 - INFO - Inference time: 0.241s
2026-05-19 10:47:27,293 - INFO - Summary PASS: True, Features PASS: True
2026-05-19 10:47:27,326 - INFO - PRECISION TEST PASSEDimport torch
from PIL import Image
from transformers import AutoModel, AutoImageProcessor
model_path = "/opt/atomgit/mxy/C-RADIOv2-B"
processor = AutoImageProcessor.from_pretrained(model_path)
model = AutoModel.from_pretrained(model_path, trust_remote_code=True)
model = model.to("npu:4").eval()
test_image = Image.fromarray(np.random.randint(0, 255, (432, 432, 3), dtype=np.uint8))
inputs = processor(images=test_image, return_tensors="pt")
pixel_values = inputs["pixel_values"].to("npu:4")
with torch.no_grad():
summary, spatial = model(pixel_values)| 组件 | 说明 | 规格 |
|---|---|---|
| embeddings | 补丁嵌入 | patch_size=16, 3通道输入 |
| encoder | Transformer 编码器 | Vision Transformer |
| output | 特征输出 | summary + spatial features |
C-RADIOv2-B模型与transformers 5.x存在all_tied_weights_keys兼容性问题。需使用transformers 4.36.0版本。
推荐使用NPU 4-7进行推理:
A: 检查NPU驱动是否正确安装,确保CANN环境变量已source,并确认transformers版本为4.36.0。
A: 首次加载会进行权重解析,C-RADIOv2-B为90M模型,加载约需4秒。
A: 使用 --device npu:4 (推荐) 或 npu:5/6/7。
本项目遵循 C-RADIOv2-B 原始 NVIDIA Open Model License。