Perception Encoder (PE-Core-S16-384) 图像特征提取与零样本分类模型在华为 Ascend NPU 上的推理部署。
| 属性 | 值 |
|---|---|
| 模型架构 | PE-Core-S16-384 (Perception Encoder Small, patch 16) |
| 模型类型 | CLIP 风格视觉-语言对比学习编码器 |
| 输入尺寸 | 384 × 384 |
| 输出特征 | 1024-dim L2 归一化图像特征向量 |
| 视觉参数量 | ~90M (Vision tower) |
| 论文 | Perception Encoder (arXiv 2504.13181) |
| 模型来源 | HuggingFace (facebook/PE-Core-S16-384) · AtomGit 镜像 |
| timm 模型名 | PE-Core-S-16-384 |
# 安装 PyTorch 与 torch_npu(根据 CANN 版本选择对应 whl)
# 以 CANN 8.0.0 / PyTorch 2.2.0 为例:
pip install torch==2.2.0
pip install torch-npu==2.2.0
# 验证 NPU 可用
python -c "import torch; import torch_npu; print(torch.npu.is_available())"
# 应输出: Truepip install -r requirements.txt权重可通过以下方式获取:
方式一:自动下载(推荐)
推理脚本会在首次运行时自动从 HuggingFace Hub 或 timm 缓存下载权重。
方式二:从 AtomGit 镜像克隆
# 克隆模型权重仓库
git lfs install
git clone https://ai.gitcode.com/hf_mirrors/facebook/PE-Core-S16-384.git
# 推理时通过 --model_path 指定本地路径# 模式一:图像特征提取(默认)
python inference.py --image_path /path/to/your/image.jpg
# 模式二:零样本 ImageNet-1k 分类(需安装 open_clip)
python inference.py --image_path /path/to/your/image.jpg --mode classify
# 强制 CPU 推理
python inference.py --image_path /path/to/your/image.jpg --cpu
# 指定本地模型路径
python inference.py --image_path /path/to/your/image.jpg --model_path ./PE-Core-S16-384
# 输出 Top-10 分类结果
python inference.py --image_path /path/to/your/image.jpg --mode classify --topk 10[INFO] 推理设备: npu:0
[INFO] 加载模型: PE-Core-S-16-384
[INFO] 模型加载完成,参数量: 90,123,456
[INFO] 输入尺寸: (3, 384, 384)
[INFO] 特征维度: 1024
[INFO] 输入图像: /path/to/image.jpg (384×384)
============================================================
图像特征提取完成
============================================================
特征维度: 1024
特征范数: 1.0000 (应接近 1.0, 表示 L2 归一化)
特征向量 (前 10 维): [0.023, -0.045, 0.067, ...]
推理耗时: 25.34 ms
设备: npu:0
============================================================[INFO] 推理设备: npu:0
[INFO] 加载模型: PE-Core-S-16-384
[INFO] 模型加载完成,参数量: 90,123,456
[INFO] 输入尺寸: (3, 384, 384)
[INFO] 输入图像: /path/to/image.jpg (384×384)
============================================================
Top-5 零样本分类结果
============================================================
#1: golden retriever (207) — 85.23%
#2: Labrador retriever (208) — 5.41%
#3: English setter (155) — 2.13%
#4: Irish setter (156) — 1.67%
#5: English foxhound (161) — 0.98%
============================================================
推理耗时: 28.56 ms
设备: npu:0
============================================================PE-Core-S16-384/
├── inference.py # 推理脚本(支持 embed / classify 两种模式)
├── README.md # 部署说明文档
├── requirements.txt # 环境依赖清单
└── assets/ # 截图素材(后续补充)
├── agent_workflow.png # 部署流程图
├── npu_device_call.png # NPU 设备调用截图
└── model_result.png # 推理结果截图Apache 2.0