PaddleX模型产线Python脚本使用说明¶
在使用 Python 脚本进行模型产线快速推理前,请确保您已经按照 PaddleX 本地安装教程完成了 PaddleX 的安装。
一、使用示例¶
以图像分类产线为例,使用方式如下:
from paddlex import create_pipeline
pipeline = create_pipeline("image_classification")
output = pipeline.predict("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg", batch_size=1, topk=5)
for res in output:
res.print(json_format=False)
res.save_to_img("./output/")
res.save_to_json("./output/res.json")
简单来说,只需三步:
- 调用
create_pipeline()
方法实例化预测模型产线对象; - 调用预测模型产线对象的
predict()
方法进行推理预测; - 调用
print()
、save_to_xxx()
等相关方法对预测结果进行打印输出或是保存。
二、API说明¶
1. 调用create_pipeline()
方法实例化预测模型产线对象¶
create_pipeline
:实例化预测模型产线对象;- 参数:
pipeline
:str
类型,产线名或是本地产线配置文件路径,如“image_classification”、“/path/to/image_classification.yaml”;device
:str
类型,用于设置模型推理设备,如为 GPU 则可以指定卡号,如“cpu”、“gpu:2”,默认情况下,如有 GPU 设置则使用 0 号 GPU,否则使用 CPU;pp_option
:PaddlePredictorOption
类型,用于改变运行模式等配置项,关于推理配置的详细说明,请参考下文4-推理配置;use_hpip
:bool | None
类型,是否启用高性能推理插件(None
表示使用配置文件中的配置);hpi_config
:dict | None
类型,高性能推理配置;
- 返回值:
BasePredictor
类型。
2. 调用预测模型产线对象的predict()
方法进行推理预测¶
predict
:使用定义的预测模型产线,对输入数据进行预测;- 参数:
input
:任意类型,支持str类型表示的待预测数据文件路径,或是包含待预测文件的目录,或是网络URL;对于CV任务,支持numpy.ndarray表示的图像数据;对于TS任务,支持pandas.DataFrame类型数据;同样支持上述类型所构成的list类型;
- 返回值:
generator
,每次调用返回一个样本的预测结果;
3. 对预测结果进行可视化¶
模型产线的预测结果支持访问、可视化及保存,可通过相应的属性或方法实现,具体如下:
属性:¶
str
:str
类型表示的预测结果;- 返回值:
str
类型,预测结果的str表示; json
:json格式表示的预测结果;- 返回值:
dict
类型; img
:预测结果的可视化图;- 返回值:
PIL.Image
类型; html
:预测结果的HTML表示;- 返回值:
str
类型; 更多
:不同产线的预测结果支持不同的表示方式,更多属性请参考具体产线文档;
方法:¶
print()
:将预测结果输出,需要注意,当预测结果不便于直接输出时,会省略相关内容;- 参数:
json_format
:bool
类型,默认为False
,表示不使用json格式化输出;indent
:int
类型,默认为4
,当json_format
为True
时有效,表示json格式化的类型;ensure_ascii
:bool
类型,默认为False
,当json_format
为True
时有效;
- 返回值:无;
save_to_json()
:将预测结果保存为json格式的文件,需要注意,当预测结果包含无法json序列化的数据时,会自动进行格式转换以实现序列化保存;- 参数:
save_path
:str
类型,结果保存的路径;indent
:int
类型,默认为4
,当json_format
为True
时有效,表示json格式化的类型;ensure_ascii
:bool
类型,默认为False
,当json_format
为True
时有效;
- 返回值:无;
save_to_img()
:将预测结果可视化并保存为图像;- 参数:
save_path
:str
类型,结果保存的路径;
- 返回值:无;
save_to_csv()
:将预测结果保存为CSV文件;- 参数:
save_path
:str
类型,结果保存的路径;
- 返回值:无;
save_to_html()
:将预测结果保存为HTML文件;- 参数:
save_path
:str
类型,结果保存的路径;
- 返回值:无;
save_to_xlsx()
:将预测结果保存为XLSX文件;- 参数:
save_path
:str
类型,结果保存的路径;
- 返回值:无;
更多
:不同产线的预测结果支持不同的存储方式,更多方法请参考具体产线文档;
4. 推理后端设置¶
PaddleX 支持通过PaddlePredictorOption
修改推理配置,相关API如下:
属性:¶
deivce
:推理设备;- 支持设置
str
类型表示的推理设备类型及卡号,设备类型支持可选 “gpu”、“cpu”、“npu”、“xpu”、“mlu”、“dcu”,当使用加速卡时,支持指定卡号,如使用 0 号 GPU:gpu:0
,默认情况下,如有 GPU 设置则使用 0 号 GPU,否则使用 CPU; - 返回值:
str
类型,当前设置的推理设备。 run_mode
:运行模式;- 支持设置
str
类型的运行模式,支持可选 'paddle','trt_fp32','trt_fp16','trt_int8','mkldnn','mkldnn_bf16',其中 'trt_fp32' 和' trt_fp16' 分别对应使用 TensorRT 子图引擎进行 FP32 和 FP16 精度的推理,仅当推理设备使用 GPU 时可选,'mkldnn' 仅当推理设备使用 CPU 时可选,默认为 'paddle'; - 返回值:
str
类型,当前设置的运行模式。 cpu_threads
:cpu 加速库计算线程数,仅当推理设备使用 cpu 时有效;- 支持设置
int
类型,cpu 推理时加速库计算线程数; - 返回值:
int
类型,当前设置的加速库计算线程数。 trt_dynamic_shapes
:TensorRT 动态形状配置,仅当run_mode
为 'trt_fp32' 或 'trt_fp16' 时有效;- 支持设置:
dict
类型或None
,如果为dict
,键为输入张量名称,值为一个两级嵌套列表:[{最小形状}, {优化形状}, {最大形状}]
,例如[[1, 2], [1, 2], [2, 2]]
; - 返回值:
dict
类型或None
,当前的 TensorRT 动态形状配置。 trt_dynamic_shape_input_data
:使用 TensorRT 时,为用于构建引擎的输入张量填充的数据,仅当run_mode
为 'trt_fp32' 或 'trt_fp16' 时有效;- 支持设置:
dict
类型或None
,如果为dict
,键为输入张量名称,值为一个两级嵌套列表:[{最小形状对应的填充数据}, {优化形状对应的填充数据}, {最大形状对应的填充数据}]
,例如[[1.0, 1.0], [1.0, 1.0], [1.0, 1.0, 1.0, 1.0]]
,数据为浮点数,按照行优先顺序填充; - 返回值:
dict
类型或None
,当前设置的输入张量填充数据。
方法:¶
get_support_run_mode
:获取支持的运行模式;- 参数:无;
- 返回值:list 类型,可选的运行模式。
get_support_device
:获取支持的运行设备类型;- 参数:无;
- 返回值:list 类型,可选的设备类型。
get_device
:获取当前设置的设备;- 参数:无;
- 返回值:str 类型。