mirror of
				https://github.com/PaddlePaddle/FastDeploy.git
				synced 2025-11-01 04:12:58 +08:00 
			
		
		
		
	 57e5841d2e
			
		
	
	57e5841d2e
	
	
	
		
			
			* first commit for yolov7 * pybind for yolov7 * CPP README.md * CPP README.md * modified yolov7.cc * README.md * python file modify * delete license in fastdeploy/ * repush the conflict part * README.md modified * README.md modified * file path modified * file path modified * file path modified * file path modified * file path modified * README modified * README modified * move some helpers to private * add examples for yolov7 * api.md modified * api.md modified * api.md modified * YOLOv7 * yolov7 release link * yolov7 release link * yolov7 release link * copyright * change some helpers to private * change variables to const and fix documents. * gitignore * Transfer some funtions to private member of class * Transfer some funtions to private member of class * Merge from develop (#9) * Fix compile problem in different python version (#26) * fix some usage problem in linux * Fix compile problem Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> * Add PaddleDetetion/PPYOLOE model support (#22) * add ppdet/ppyoloe * Add demo code and documents * add convert processor to vision (#27) * update .gitignore * Added checking for cmake include dir * fixed missing trt_backend option bug when init from trt * remove un-need data layout and add pre-check for dtype * changed RGB2BRG to BGR2RGB in ppcls model * add model_zoo yolov6 c++/python demo * fixed CMakeLists.txt typos * update yolov6 cpp/README.md * add yolox c++/pybind and model_zoo demo * move some helpers to private * fixed CMakeLists.txt typos * add normalize with alpha and beta * add version notes for yolov5/yolov6/yolox * add copyright to yolov5.cc * revert normalize * fixed some bugs in yolox * fixed examples/CMakeLists.txt to avoid conflicts * add convert processor to vision * format examples/CMakeLists summary * Fix bug while the inference result is empty with YOLOv5 (#29) * Add multi-label function for yolov5 * Update README.md Update doc * Update fastdeploy_runtime.cc fix variable option.trt_max_shape wrong name * Update runtime_option.md Update resnet model dynamic shape setting name from images to x * Fix bug when inference result boxes are empty * Delete detection.py Co-authored-by: Jason <jiangjiajun@baidu.com> Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com> Co-authored-by: huangjianhui <852142024@qq.com> * first commit for yolor * for merge * Develop (#11) * Fix compile problem in different python version (#26) * fix some usage problem in linux * Fix compile problem Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> * Add PaddleDetetion/PPYOLOE model support (#22) * add ppdet/ppyoloe * Add demo code and documents * add convert processor to vision (#27) * update .gitignore * Added checking for cmake include dir * fixed missing trt_backend option bug when init from trt * remove un-need data layout and add pre-check for dtype * changed RGB2BRG to BGR2RGB in ppcls model * add model_zoo yolov6 c++/python demo * fixed CMakeLists.txt typos * update yolov6 cpp/README.md * add yolox c++/pybind and model_zoo demo * move some helpers to private * fixed CMakeLists.txt typos * add normalize with alpha and beta * add version notes for yolov5/yolov6/yolox * add copyright to yolov5.cc * revert normalize * fixed some bugs in yolox * fixed examples/CMakeLists.txt to avoid conflicts * add convert processor to vision * format examples/CMakeLists summary * Fix bug while the inference result is empty with YOLOv5 (#29) * Add multi-label function for yolov5 * Update README.md Update doc * Update fastdeploy_runtime.cc fix variable option.trt_max_shape wrong name * Update runtime_option.md Update resnet model dynamic shape setting name from images to x * Fix bug when inference result boxes are empty * Delete detection.py Co-authored-by: Jason <jiangjiajun@baidu.com> Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com> Co-authored-by: huangjianhui <852142024@qq.com> * Yolor (#16) * Develop (#11) (#12) * Fix compile problem in different python version (#26) * fix some usage problem in linux * Fix compile problem Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> * Add PaddleDetetion/PPYOLOE model support (#22) * add ppdet/ppyoloe * Add demo code and documents * add convert processor to vision (#27) * update .gitignore * Added checking for cmake include dir * fixed missing trt_backend option bug when init from trt * remove un-need data layout and add pre-check for dtype * changed RGB2BRG to BGR2RGB in ppcls model * add model_zoo yolov6 c++/python demo * fixed CMakeLists.txt typos * update yolov6 cpp/README.md * add yolox c++/pybind and model_zoo demo * move some helpers to private * fixed CMakeLists.txt typos * add normalize with alpha and beta * add version notes for yolov5/yolov6/yolox * add copyright to yolov5.cc * revert normalize * fixed some bugs in yolox * fixed examples/CMakeLists.txt to avoid conflicts * add convert processor to vision * format examples/CMakeLists summary * Fix bug while the inference result is empty with YOLOv5 (#29) * Add multi-label function for yolov5 * Update README.md Update doc * Update fastdeploy_runtime.cc fix variable option.trt_max_shape wrong name * Update runtime_option.md Update resnet model dynamic shape setting name from images to x * Fix bug when inference result boxes are empty * Delete detection.py Co-authored-by: Jason <jiangjiajun@baidu.com> Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com> Co-authored-by: huangjianhui <852142024@qq.com> Co-authored-by: Jason <jiangjiajun@baidu.com> Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com> Co-authored-by: huangjianhui <852142024@qq.com> * Develop (#13) * Fix compile problem in different python version (#26) * fix some usage problem in linux * Fix compile problem Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> * Add PaddleDetetion/PPYOLOE model support (#22) * add ppdet/ppyoloe * Add demo code and documents * add convert processor to vision (#27) * update .gitignore * Added checking for cmake include dir * fixed missing trt_backend option bug when init from trt * remove un-need data layout and add pre-check for dtype * changed RGB2BRG to BGR2RGB in ppcls model * add model_zoo yolov6 c++/python demo * fixed CMakeLists.txt typos * update yolov6 cpp/README.md * add yolox c++/pybind and model_zoo demo * move some helpers to private * fixed CMakeLists.txt typos * add normalize with alpha and beta * add version notes for yolov5/yolov6/yolox * add copyright to yolov5.cc * revert normalize * fixed some bugs in yolox * fixed examples/CMakeLists.txt to avoid conflicts * add convert processor to vision * format examples/CMakeLists summary * Fix bug while the inference result is empty with YOLOv5 (#29) * Add multi-label function for yolov5 * Update README.md Update doc * Update fastdeploy_runtime.cc fix variable option.trt_max_shape wrong name * Update runtime_option.md Update resnet model dynamic shape setting name from images to x * Fix bug when inference result boxes are empty * Delete detection.py Co-authored-by: Jason <jiangjiajun@baidu.com> Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com> Co-authored-by: huangjianhui <852142024@qq.com> * documents * documents * documents * documents * documents * documents * documents * documents * documents * documents * documents * documents * Develop (#14) * Fix compile problem in different python version (#26) * fix some usage problem in linux * Fix compile problem Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> * Add PaddleDetetion/PPYOLOE model support (#22) * add ppdet/ppyoloe * Add demo code and documents * add convert processor to vision (#27) * update .gitignore * Added checking for cmake include dir * fixed missing trt_backend option bug when init from trt * remove un-need data layout and add pre-check for dtype * changed RGB2BRG to BGR2RGB in ppcls model * add model_zoo yolov6 c++/python demo * fixed CMakeLists.txt typos * update yolov6 cpp/README.md * add yolox c++/pybind and model_zoo demo * move some helpers to private * fixed CMakeLists.txt typos * add normalize with alpha and beta * add version notes for yolov5/yolov6/yolox * add copyright to yolov5.cc * revert normalize * fixed some bugs in yolox * fixed examples/CMakeLists.txt to avoid conflicts * add convert processor to vision * format examples/CMakeLists summary * Fix bug while the inference result is empty with YOLOv5 (#29) * Add multi-label function for yolov5 * Update README.md Update doc * Update fastdeploy_runtime.cc fix variable option.trt_max_shape wrong name * Update runtime_option.md Update resnet model dynamic shape setting name from images to x * Fix bug when inference result boxes are empty * Delete detection.py Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com> Co-authored-by: huangjianhui <852142024@qq.com> Co-authored-by: Jason <jiangjiajun@baidu.com> Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com> Co-authored-by: huangjianhui <852142024@qq.com> Co-authored-by: Jason <928090362@qq.com> * add is_dynamic for YOLO series (#22) * modify ppmatting backend and docs * modify ppmatting docs * fix the PPMatting size problem * fix LimitShort's log * retrigger ci * modify PPMatting docs * modify the way for dealing with LimitShort * add python comments for external models * modify resnet c++ comments * modify C++ comments for external models * modify python comments and add result class comments * fix comments compile error * modify result.h comments * deadlink check * deadlink check * deadlink check Co-authored-by: Jason <jiangjiajun@baidu.com> Co-authored-by: root <root@bjyz-sys-gpu-kongming3.bjyz.baidu.com> Co-authored-by: DefTruth <31974251+DefTruth@users.noreply.github.com> Co-authored-by: huangjianhui <852142024@qq.com> Co-authored-by: Jason <928090362@qq.com>
		
			
				
	
	
		
			171 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 模型配置
 | ||
| 模型存储库中的每个模型都必须包含一个模型配置,该配置提供了关于模型的必要和可选信息。这些配置信息一般写在 *config.pbtxt* 文件中,[ModelConfig protobuf](https://github.com/triton-inference-server/common/blob/main/protobuf/model_config.proto)格式。
 | ||
| 
 | ||
| ## 模型通用最小配置
 | ||
| 详细的模型通用配置请看官网文档: [model_configuration](https://github.com/triton-inference-server/server/blob/main/docs/user_guide/model_configuration.md).Triton的最小模型配置必须包括: *platform* 或 *backend* 属性、*max_batch_size* 属性和模型的输入输出.
 | ||
| 
 | ||
| 例如一个Paddle模型,有两个输入*input0* 和 *input1*,一个输出*output0*,输入输出都是float32类型的tensor,最大batch为8.则最小的配置如下:
 | ||
| 
 | ||
| ```
 | ||
|   backend: "fastdeploy"
 | ||
|   max_batch_size: 8
 | ||
|   input [
 | ||
|     {
 | ||
|       name: "input0"
 | ||
|       data_type: TYPE_FP32
 | ||
|       dims: [ 16 ]
 | ||
|     },
 | ||
|     {
 | ||
|       name: "input1"
 | ||
|       data_type: TYPE_FP32
 | ||
|       dims: [ 16 ]
 | ||
|     }
 | ||
|   ]
 | ||
|   output [
 | ||
|     {
 | ||
|       name: "output0"
 | ||
|       data_type: TYPE_FP32
 | ||
|       dims: [ 16 ]
 | ||
|     }
 | ||
|   ]
 | ||
| ```
 | ||
| 
 | ||
| ## CPU、GPU和实例个数配置
 | ||
| 
 | ||
| 通过*instance_group*属性可以配置服务使用哪种硬件资源,分别部署多少个模型推理实例。
 | ||
| 
 | ||
| CPU部署例子:
 | ||
| ```
 | ||
|   instance_group [
 | ||
|     {
 | ||
|       # 创建两个CPU实例
 | ||
|       count: 2
 | ||
|       # 使用CPU部署  
 | ||
|       kind: KIND_CPU
 | ||
|     }
 | ||
|   ]
 | ||
| ```
 | ||
| 
 | ||
| 在*GPU 0*上部署2个实例,在*GPU1*和*GPU*上分别部署1个实例
 | ||
| 
 | ||
| ```
 | ||
|   instance_group [
 | ||
|     {
 | ||
|       # 创建两个GPU实例
 | ||
|       count: 2
 | ||
|       # 使用GPU推理
 | ||
|       kind: KIND_GPU
 | ||
|       # 部署在GPU卡0上
 | ||
|       gpus: [ 0 ]
 | ||
|     },
 | ||
|     {
 | ||
|       count: 1
 | ||
|       kind: KIND_GPU
 | ||
|       # 在GPU卡1、2都部署
 | ||
|       gpus: [ 1, 2 ]
 | ||
|     }
 | ||
|   ]
 | ||
| ```
 | ||
| 
 | ||
| ### Name, Platform and Backend
 | ||
| 模型配置中 *name* 属性是可选的。如果模型没有在配置中指定,则使用模型的目录名;如果指定了该属性,它必须要跟模型的目录名一致。
 | ||
| 
 | ||
| 使用 *fastdeploy backend*,没有*platform*属性可以配置,必须配置*backend*属性为*fastdeploy*。
 | ||
| 
 | ||
| ```
 | ||
| backend: "fastdeploy"
 | ||
| ```
 | ||
| 
 | ||
| ### FastDeploy Backend配置
 | ||
| 
 | ||
| FastDeploy后端目前支持*cpu*和*gpu*推理,*cpu*上支持*paddle*、*onnxruntime*和*openvino*三个推理引擎,*gpu*上支持*paddle*、*onnxruntime*和*tensorrt*三个引擎。
 | ||
| 
 | ||
| 
 | ||
| #### 配置使用Paddle引擎
 | ||
| 除去配置 *Instance Groups*,决定模型运行在CPU还是GPU上。Paddle引擎中,还可以进行如下配置:
 | ||
| 
 | ||
| ```
 | ||
| optimization {
 | ||
|   execution_accelerators {
 | ||
|     # CPU推理配置, 配合KIND_CPU使用
 | ||
|     cpu_execution_accelerator : [
 | ||
|       {
 | ||
|         name : "paddle"
 | ||
|         # 设置推理并行计算线程数为4
 | ||
|         parameters { key: "cpu_threads" value: "4" }
 | ||
|         # 开启mkldnn加速,设置为0关闭mkldnn
 | ||
|         parameters { key: "use_mkldnn" value: "1" }
 | ||
|       }
 | ||
|     ],
 | ||
|     # GPU推理配置, 配合KIND_GPU使用
 | ||
|     gpu_execution_accelerator : [
 | ||
|       {
 | ||
|         name : "paddle"
 | ||
|         # 设置推理并行计算线程数为4
 | ||
|         parameters { key: "cpu_threads" value: "4" }
 | ||
|         # 开启mkldnn加速,设置为0关闭mkldnn
 | ||
|         parameters { key: "use_mkldnn" value: "1" }
 | ||
|       }
 | ||
|     ]
 | ||
|   }
 | ||
| }
 | ||
| ```
 | ||
| 
 | ||
| ### 配置使用ONNXRuntime引擎
 | ||
| 除去配置 *Instance Groups*,决定模型运行在CPU还是GPU上。ONNXRuntime引擎中,还可以进行如下配置:
 | ||
| 
 | ||
| ```
 | ||
| optimization {
 | ||
|   execution_accelerators {
 | ||
|     cpu_execution_accelerator : [
 | ||
|       {
 | ||
|         name : "onnxruntime"
 | ||
|         # 设置推理并行计算线程数为4
 | ||
|         parameters { key: "cpu_threads" value: "4" }
 | ||
|       }
 | ||
|     ],
 | ||
|     gpu_execution_accelerator : [
 | ||
|       {
 | ||
|         name : "onnxruntime"
 | ||
|       }
 | ||
|     ]
 | ||
|   }
 | ||
| }
 | ||
| ```
 | ||
| 
 | ||
| ### 配置使用OpenVINO引擎
 | ||
| OpenVINO引擎只支持CPU推理,配置如下:
 | ||
| 
 | ||
| ```
 | ||
| optimization {
 | ||
|   execution_accelerators {
 | ||
|     cpu_execution_accelerator : [
 | ||
|       {
 | ||
|         name : "openvino"
 | ||
|         # 设置推理并行计算线程数为4(所有实例总共线程数)
 | ||
|         parameters { key: "cpu_threads" value: "4" }
 | ||
|         # 设置OpenVINO的num_streams(一般设置为跟实例数一致)
 | ||
|         parameters { key: "num_streams" value: "1" }
 | ||
|       }
 | ||
|     ]
 | ||
|   }
 | ||
| }
 | ||
| ```
 | ||
| 
 | ||
| ### 配置使用TensorRT引擎
 | ||
| TensorRT引擎只支持GPU推理,配置如下:
 | ||
| 
 | ||
| ```
 | ||
| optimization {
 | ||
|   execution_accelerators {
 | ||
|     gpu_execution_accelerator : [
 | ||
|       {
 | ||
|         name : "tensorrt"
 | ||
|         # 使用TensorRT的FP16推理,其他可选项为: trt_fp32、trt_int8
 | ||
|         parameters { key: "precision" value: "trt_fp16" }
 | ||
|       }
 | ||
|     ]
 | ||
|   }
 | ||
| }
 | ||
| ```
 |