- 人工智能
- 深度学习
- 计算机视觉
- NLP
- 语音
【免费下载链接】models
Officially maintained, supported by PaddlePaddle, including CV, NLP, Speech, Rec, TS, big models and so on.
本文围绕 PaddlePaddle 官方维护的轻量级图像分类模型 PP-LCNet 展开,完整讲解如何使用全场景推理部署工具 FastDeploy 完成从预编译包安装、部署示例下载到多硬件推理的端到端流程,并对照仓库内的模型下载表与推理 Benchmark 数据,帮助读者在 X86 CPU、NVIDIA GPU 等环境下快速获得可复现、可扩展的高性能部署方案。读完本文,你将掌握 PP-LCNet 推理模型的获取方式、FastDeploy 的安装与调用套路,以及通过--device、--use_trt等参数在不同推理后端之间自由切换的实战技能。
1. 背景:PP-LCNet 与 FastDeploy 的契合点
1.1 PP-LCNet:面向 CPU 场景的轻量级骨干网络
根据本仓库模型元数据(info.yaml),PP-LCNet 是一类面向 Intel CPU 端优化的轻量级卷积神经网络,出自 PaddleClas 仓库,属于计算机视觉(Computer Vision)/ 图像分类(Image Classification)子任务,在 ImageNet1k 数据集上评测,遵循 Apache 2.0 许可。其论文为PP-LCNet: A Lightweight CPU Convolutional Neural Network(arXiv 2109.15099)。
从 introduction_cn.ipynb 可以进一步了解:PP-LCNet 系列模型由 PaddleCV 团队提出,针对 Intel CPU 硬件平台特别优化,同时兼顾多种平台,在推理速度与精度之间取得平衡,并可作为骨干网络提升目标检测、语义分割等下游任务效果。模型在设计上融合了四个"几乎不增加延迟但能提升精度"的策略——更好的激活函数(H-Swish)、在合适位置添加 SE 模块、在合适位置使用更大的卷积核、以及在 GAP 后使用更大的 1×1 卷积层。
正是因为 PP-LCNet 的轻量化与多平台适配特性,它特别适合借助 FastDeploy 这类支持云边端多硬件的推理工具进行统一部署。
1.2 FastDeploy:全场景、多后端的推理部署工具
FastDeploy 是一款全场景、易用灵活、极致高效的 AI 推理部署工具,提供开箱即用的云边端部署体验,支持 150+ Text、Vision、Speech 和跨模态模型,实现 AI 模型端到端的优化加速。其支持的硬件包括X86 CPU、NVIDIA GPU、ARM CPU、XPU、NPU、IPU等 10 类云边端硬件,通过一行代码即可切换不同推理后端和硬件。
使用 FastDeploy 三步即可完成 AI 模型部署:
- 安装 FastDeploy 预编译包;
- 调用 FastDeploy 的 API 实现部署代码;
- 运行推理部署。
本文档对应的部署场景为:下载 FastDeploy 官方部署示例,完成 PP-LCNet 推理模型在 X86 CPU、NVIDIA GPU 上的高性能推理体验(GPU 环境需默认就绪,如 CUDA >= 11.2 等)。
2. 前置准备:安装 FastDeploy 预编译包
部署 PP-LCNet 的第一步是安装 FastDeploy 的 Python 预编译包。本文档使用 GPU 版本,并指定从 PaddlePaddle 官方 nightly 构建索引安装:
pip install fastdeploy-gpu-python==0.0.0 -f https://www.paddlepaddle.org.cn/whl/fastdeploy_nightly_build.html其中-f(--find-links)指定了预编译 wheel 包所在的索引页面,fastdeploy-gpu-python为 GPU 版本包名。安装完成后,即可在 Python 中导入 FastDeploy 并调用其推理 API。
适用前提与限制:该安装命令面向 GPU 推理场景,文档默认已准备好 GPU 环境(CUDA >= 11.2 等)。如需部署到 ARM CPU、XPU、NPU、IPU 等其他硬件,或希望完整了解 FastDeploy 的全部部署能力,需要查阅 FastDeploy 官方仓库的对应文档。
3. 运行部署示例:完整实操流程
3.1 获取部署示例、模型与测试图片
首先克隆 FastDeploy 仓库并进入 PP-LCNet 对应的图像分类部署示例目录(paddleclas 分类示例的 python 版):
# 下载部署示例代码 git clone https://github.com/PaddlePaddle/FastDeploy.git cd FastDeploy/examples/vision/classification/paddleclas/python # 下载 LCNet 模型文件和测试图片 wget https://bj.bcebos.com/paddlehub/fastdeploy/PPLCNet_x1_0_infer.tgz tar -xvf PPLCNet_x1_0_infer.tgz wget https://gitee.com/paddlepaddle/PaddleClas/raw/release/2.4/deploy/images/ImageNet/ILSVRC2012_val_00000010.jpeg这里下载的PPLCNet_x1_0_infer.tgz是 PP-LCNet x1.0 规格的推理模型压缩包,解压后得到 FastDeploy 可直接加载的推理模型目录;测试图片ILSVRC2012_val_00000010.jpeg是 ImageNet 验证集样例,用于检验分类效果。
3.2 四种推理方式:CPU / GPU / TensorRT / IPU
进入示例目录后,通过infer.py传入模型路径、图片路径以及设备参数即可完成推理:
# CPU 推理 python infer.py --model PPLCNet_x1_0_infer --image ILSVRC2012_val_00000010.jpeg --device cpu --topk 1 # GPU 推理 python infer.py --model PPLCNet_x1_0_infer --image ILSVRC2012_val_00000010.jpeg --device gpu --topk 1 # GPU 上使用 TensorRT 推理 # 注意:TensorRT 推理第一次运行时有序列化模型的操作,有一定耗时,需要耐心等待 python infer.py --model PPLCNet_x1_0_infer --image ILSVRC2012_val_00000010.jpeg --device gpu --use_trt True --topk 1 # IPU 推理 # 注意:IPU 推理首次运行会有序列化模型的操作,有一定耗时,需要耐心等待 python infer.py --model PPLCNet_x1_0_infer --image ILSVRC2012_val_00000010.jpeg --device ipu --topk 1命令行参数含义如下:
| 参数 | 作用 | 取值说明 |
|---|---|---|
--model | 指定推理模型目录 | 指向解压后的PPLCNet_x1_0_infer目录 |
--image | 指定测试图片路径 | 指向下载的ILSVRC2012_val_00000010.jpeg |
--device | 指定推理设备/后端 | cpu、gpu、ipu等,一行代码切换硬件 |
--use_trt | 是否在 GPU 上启用 TensorRT 加速 | True/False |
--topk | 返回得分最高的前 K 个类别 | 示例中--topk 1表示只取 Top-1 结果 |
这组命令直观体现了 FastDeploy"一行代码切换不同推理后端和硬件"的设计理念:模型文件、图片路径完全一致,仅需调整--device与--use_trt参数,即可在 CPU 普通推理、GPU 原生推理、GPU + TensorRT 加速推理、IPU 推理之间切换,无需改写任何业务代码。
3.3 运行结果解读
运行完成后,示例程序输出的结果如下:
==============================PPLCNet_x1_0============================== cpu_label: 153, cpu_score: 0.612086 ipu_label: 153, ipu_score: 0.612087 ==============================PPLCNet_x1_0==============================其中cpu_label/ipu_label为对应设备推理得到的 ImageNet1k 类别编号(153),cpu_score/ipu_score为该类别对应的置信度得分。可以看到 CPU 与 IPU 两种后端得到完全一致的类别编号,置信度也几乎相同(0.612086 vs 0.612087),说明跨后端推理结果一致性良好。
4. 模型族谱与文件清单:PP-LCNet 系列推理模型怎么选
FastDeploy 示例中使用的是PPLCNet_x1_0_infer,而 PP-LCNet 实际上是一个拥有多种宽高比规格(x0_25~x2_5)的模型系列。仓库中的 download_cn.md 给出了完整的推理模型与预训练模型下载清单,输入尺寸统一为 224:
| 模型名称 | 模型简介 | 输入尺寸 |
|---|---|---|
| PPLCNet_x0_25 | 图像分类 | 224 |
| PPLCNet_x0_35 | 图像分类 | 224 |
| PPLCNet_x0_5 | 图像分类 | 224 |
| PPLCNet_x0_75 | 图像分类 | 224 |
| PPLCNet_x1_0 | 图像分类 | 224 |
| PPLCNet_x1_5 | 图像分类 | 224 |
| PPLCNet_x2_0 | 图像分类 | 224 |
| PPLCNet_x2_5 | 图像分类 | 224 |
| PPLCNet_x0_5_ssld | 图像分类(SSLD 蒸馏) | 224 |
| PPLCNet_x1_0_ssld | 图像分类(SSLD 蒸馏) | 224 |
| PPLCNet_x2_5_ssld | 图像分类(SSLD 蒸馏) | 224 |
其中_ssld后缀表示使用 SSLD 知识蒸馏训练得到的模型,通常精度更高。规格数字(x0_25~x2_5)越大,模型容量与精度越高、推理耗时越长,实际部署时可按精度/速度需求选择对应规格;FastDeploy 示例默认选用的是容量与精度较为均衡的x1_0规格。
5. 性能预期:Benchmark 参考数据
为了让读者对 PP-LCNet 部署后的性能有量化预期,仓库中的 benchmark_cn.md 给出了基于多种硬件平台的推理速度评测结果,可作为部署验收与调优的参照。
评测说明(原文要点):
- 评测覆盖 Intel CPU、V100 GPU、SD855 等多种硬件平台;
- 所有测试基于 FP32 精度完成;
- Intel CPU 平台开启 MKLDNN 加速;
- V100 GPU 平台开启 TensorRT 加速;
- 数据集使用 ImageNet1k validation。
Intel Xeon Gold 6148 上的预测速度(bs=1, thread=10):
| Model | Latency(ms) |
|---|---|
| PPLCNet_x0_25 | 1.74 |
| PPLCNet_x0_35 | 1.92 |
| PPLCNet_x0_5 | 2.05 |
| PPLCNet_x0_75 | 2.29 |
| PPLCNet_x1_0 | 2.46 |
| PPLCNet_x1_5 | 3.19 |
| PPLCNet_x2_0 | 4.27 |
| PPLCNet_x2_5 | 5.39 |
V100 GPU 上的预测速度:
| Models | Latency(ms) bs=1 | Latency(ms) bs=4 | Latency(ms) bs=8 |
|---|---|---|---|
| PPLCNet_x0_25 | 0.72 | 1.17 | 1.71 |
| PPLCNet_x0_35 | 0.69 | 1.21 | 1.82 |
| PPLCNet_x0_5 | 0.70 | 1.32 | 1.94 |
| PPLCNet_x0_75 | 0.71 | 1.49 | 2.19 |
| PPLCNet_x1_0 | 0.73 | 1.64 | 2.53 |
| PPLCNet_x1_5 | 0.82 | 2.06 | 3.12 |
| PPLCNet_x2_0 | 0.94 | 2.58 | 4.08 |
SD855 上的预测速度:
| Models | Latency(ms) bs=1, thread=1 | Latency(ms) bs=1, thread=2 | Latency(ms) bs=1, thread=4 |
|---|---|---|---|
| PPLCNet_x0_25 | 2.30 | 1.62 | 1.32 |
| PPLCNet_x0_35 | 3.15 | 2.11 | 1.64 |
| PPLCNet_x0_5 | 4.27 | 2.73 | 1.92 |
| PPLCNet_x0_75 | 7.38 | 4.51 | 2.91 |
| PPLCNet_x1_0 | 10.78 | 6.49 | 3.98 |
| PPLCNet_x1_5 | 20.55 | 12.26 | 7.54 |
| PPLCNet_x2_0 | 33.79 | 20.17 | 12.10 |
| PPLCNet_x2_5 | 49.89 | 29.60 | 17.82 |
需要说明的是,这些数据是特定软硬件环境下的实测结果,不同 CPU 型号、线程数、TensorRT 版本、batch size 都会影响实际延迟,应将其作为选型参考而非绝对承诺。
6. 仓库内的配套资源:快速体验与更多部署入口
除了 FastDeploy 部署路径,本仓库还提供了 PP-LCNet 的其他使用方式,可作为部署与验证的补充:
- 快速体验(PaddleClas 命令行):在 introduction_cn.ipynb 中,安装
paddlepaddle(GPU 环境安装paddlepaddle-gpu)与paddleclas后,可直接执行paddleclas --model_name=PPLCNet_x1_0 --infer_imgs="./whl_demo.jpg"完成分类体验,输出包含 class_ids、scores、label_names 与文件名。这与 FastDeploy 部署形成两条互补路径:PaddleClas 命令行适合快速验证模型效果,FastDeploy 适合生产级多硬件高性能部署。 - 在线 Demo(Gradio App):仓库提供了基于 Gradio 的 APP/app.py 交互式图像分类 Demo,其核心调用为
PaddleClas(model_name='PPLCNet_x0_25')与clas.predict(image),运行环境声明见 APP/app.yml(gradio 3.4.1、CPU 设备),依赖见 APP/requirements.txt(gradio、paddlepaddle、paddleclas)。注意该 Demo 与 FastDeploy 示例属于两条独立链路:前者走 PaddleClas 推理,后者走 FastDeploy 推理后端。 - 推理模型下载表:见 download_cn.md,可按需选择不同规格与是否 SSLD 蒸馏的推理模型/预训练模型。
7. 注意事项与最佳实践小结
基于本文档及仓库内容,整理部署 PP-LCNet 时的要点:
- 环境匹配:GPU 推理需提前就绪 CUDA(>= 11.2)等环境;CPU 推理无需额外 GPU 环境,可直接运行。
- 首次运行耗时:TensorRT 与 IPU 推理首次运行都会执行模型序列化/编译操作,耗时较长属正常现象,请耐心等待,后续运行会明显加速。
- 模型规格选择:FastDeploy 示例默认使用
PPLCNet_x1_0;若追求更低延迟可选择x0_25~x0_75,若追求更高精度可选择x1_5~x2_5或_ssld蒸馏版本。 - 后端切换:通过
--device与--use_trt参数即可切换推理后端,这是 FastDeploy 的核心设计,也是云边端统一部署的关键能力。 - 性能参考:以 benchmark_cn.md 的实测数据为基线,结合自身硬件、线程数与 batch size 进行针对性验证。
综上,PP-LCNet 与 FastDeploy 的组合提供了一条"轻量模型 + 全场景部署工具"的典型实践路径:模型侧以 Intel CPU 场景为优化重点、兼顾多平台;部署侧以一行代码切换后端的能力覆盖 CPU、GPU、TensorRT、IPU 等硬件。按照本文的安装、下载、推理三步流程,即可在本地快速复现 PP-LCNet 的多后端部署效果,并基于仓库中的模型清单与 Benchmark 数据完成规格选型与性能验收。
- 人工智能
- 深度学习
- 计算机视觉
- NLP
- 语音
【免费下载链接】models
Officially maintained, supported by PaddlePaddle, including CV, NLP, Speech, Rec, TS, big models and so on.
相关推荐
PP-HGNet 图像分类模型 FastDeploy 高性能部署实战:CPU、GPU、TensorRT 与 IPU 全流程指南
PP HGNet 图像分类模型 FastDeploy 高性能部署实战:CPU、GPU、TensorRT 与 IPU 全流程指南 本篇技术指南围绕 PaddleP
人工智能深度学习计算机视觉NLP语音3条命令从零部署NanoClaw:个人AI助手快速入门教程(含首次通道配对全流程)
3条命令从零部署NanoClaw:个人AI助手快速入门教程(含首次通道配对全流程) NanoClaw 是一个运行在容器中的轻量级个人 AI 助手:它把智能体隔离
人工智能深度学习计算机视觉NLP语音lnav HTTP API 与 Markdown Magic:构建交互式 lnav 应用页面的完整指南
lnav HTTP API 与 Markdown Magic:构建交互式 lnav 应用页面的完整指南 导读 lnav 在较新版本中内置了一个本地 HTTP 服
人工智能深度学习计算机视觉NLP语音
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考