FastDeploy 开源项目教程
1. 项目介绍
FastDeploy 是一个易于使用且高性能的深度学习模型部署工具包,适用于云、移动和边缘设备。它支持多种主流场景和150多个SOTA模型,提供端到端的优化、多平台和多框架支持。FastDeploy 旨在满足开发者在多场景、多硬件和多平台上的工业部署需求。
2. 项目快速启动
2.1 安装 FastDeploy
2.1.1 安装前提条件
- CUDA >= 11.2
- cuDNN >= 8.0
- Python >= 3.6
- 操作系统:Linux x86_64/macOS/Windows 10
2.1.2 安装 FastDeploy SDK(CPU 和 GPU 支持)
pip install fastdeploy-gpu-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html
2.1.3 Conda 安装(推荐)
conda config --add channels conda-forge && conda install cudatoolkit=11.2 cudnn=8.2
2.1.4 安装 FastDeploy SDK(仅 CPU 支持)
pip install fastdeploy-python -f https://www.paddlepaddle.org.cn/whl/fastdeploy.html
2.2 Python 快速启动示例
2.2.1 准备模型和图片
wget https://bj.bcebos.com/paddlehub/fastdeploy/ppyoloe_crn_l_300e_coco.tgz
tar xvf ppyoloe_crn_l_300e_coco.tgz
wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg
2.2.2 测试推理结果
import cv2
import fastdeploy.vision as vision
im = cv2.imread("000000014439.jpg")
model = vision.detection.PPYOLOE("ppyoloe_crn_l_300e_coco/model.pdmodel",
"ppyoloe_crn_l_300e_coco/model.pdiparams",
"ppyoloe_crn_l_300e_coco/infer_cfg.yml")
result = model.predict(im)
print(result)
vis_im = vision.vis_detection(im, result, score_threshold=0.5)
cv2.imwrite("vis_image.jpg", vis_im)
2.3 C++ 快速启动示例
2.3.1 准备模型和图片
wget https://bj.bcebos.com/paddlehub/fastdeploy/ppyoloe_crn_l_300e_coco.tgz
tar xvf ppyoloe_crn_l_300e_coco.tgz
wget https://gitee.com/paddlepaddle/PaddleDetection/raw/release/2.4/demo/000000014439.jpg
2.3.2 测试推理结果
#include "fastdeploy/vision.h"
int main(int argc, char* argv[]) {
namespace vision = fastdeploy::vision;
auto im = cv::imread("000000014439.jpg");
auto model = vision::detection::PPYOLOE("ppyoloe_crn_l_300e_coco/model.pdmodel",
"ppyoloe_crn_l_300e_coco/model.pdiparams",
"ppyoloe_crn_l_300e_coco/infer_cfg.yml");
vision::DetectionResult res;
model.Predict(&im, &res);
auto vis_im = vision::VisDetection(im, res, 0.5);
cv::imwrite("vis_image.jpg", vis_im);
return 0;
}
3. 应用案例和最佳实践
3.1 图像分类
FastDeploy 支持多种图像分类模型的部署,包括 ResNet、MobileNet 等。开发者可以通过简单的配置文件和代码实现高性能的图像分类服务。
3.2 目标检测
FastDeploy 提供了对 YOLOv5、PP-YOLOE+ 等目标检测模型的支持。开发者可以快速部署这些模型,并在实际应用中进行目标检测任务。
3.3 自然语言处理
FastDeploy 支持多种 NLP 模型的部署,如 BERT、GPT 等。开发者可以通过 FastDeploy 快速实现文本分类、情感分析等任务。
4. 典型生态项目
4.1 PaddlePaddle
FastDeploy 是 PaddlePaddle 生态系统的一部分,提供了对 PaddlePaddle 模型的无缝支持。开发者可以利用 PaddlePaddle 的丰富模型库和 FastDeploy 的高性能部署能力,快速构建和部署深度学习应用。
4.2 VisualDL
VisualDL 是 PaddlePaddle 的可视化工具,FastDeploy 结合 VisualDL 提供了可视化的部署服务。开发者可以通过 VisualDL 界面管理和监控模型的部署状态,进行性能分析和优化。
4.3 PaddleDetection
PaddleDetection 是 PaddlePaddle 的目标检测工具包,FastDeploy 提供了对 PaddleDetection 中多种目标检测模型的支持。开发者可以利用 FastDeploy 快速部署这些模型,并在实际应用中进行目标检测任务。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考