掘金 人工智能 06月28日 18:08
一文读懂Paddle推理引擎Inference
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细介绍了使用PaddlePaddle进行Python预测程序开发的流程。首先,通过paddle.inference.Config创建配置,然后使用paddle.inference.create_predictor创建预测器,最后通过predictor.run()执行推理。文章还阐述了Paddle Inference预测引擎的优势,包括计算图优化和对底层加速库的支持,并提供了C++程序为例的开发步骤,涵盖配置、创建引擎、准备输入数据、执行预测和获取结果等关键环节。此外,文章还提供了参考资料,方便读者深入学习和实践。

⚙️ 首先,开发PaddlePaddle Python预测程序需要创建配置。使用paddle.inference.Config()方法,设置模型路径和其他相关参数。

🚀 其次,基于配置创建预测器。通过paddle.inference.create_predictor(config)方法,可以初始化预测引擎,该引擎负责执行推理任务。

📊 接下来,需要准备输入数据。通过获取输入Tensor的名称,然后获取输入Tensor,最后将输入数据拷贝到Tensor中。

🏃 随后,执行预测。只需调用predictor.run()方法,即可启动预测过程,完成模型的推理计算。

✅ 最后,获取预测结果。通过获取输出Tensor的名称,然后获取输出Tensor的指针,最后将结果拷贝到CPU中。

背景

Paddle Python预测程序开发说明

import argparseimport numpy as npimport paddle.inference as paddle_inferdef parse_args():    parser = argparse.ArgumentParser()    parser.add_argument("--model_file", type=str, help="model filename")    parser.add_argument("--params_file", type=str, help="parameter filename")    parser.add_argument("--batch_size", type=int, default=1, help="batch size")    # 调用parse_args()方法解析命令行参数    return parser.parse_args()def main():    args = parse_args()    # 创建 config    config = paddle_infer.Config(args.model_file, args.params_file)    # 根据 config 创建 predictor    predictor = paddle_infer.create_predictor(config)    # 获取输入的名称    input_names = predictor.get_input_names()    input_handle = predictor.get_input_handle(input_names[0])        # 设置输入    fake_input = np.random.randn(args.batch_size, 3, 318, 318).astype("float32")    input_handle.reshape([args.batch_size, 3, 318, 318])    input_handle.copy_from_cpu(fake_input)    # 运行predictor    predictor.run()        # 获取输出     output_names = predictor.get_output_names()    output_handle = predictor.get_output_handle(output_names[0])    output_data = output_handle.copy_to_cpu() # numpy.ndarray类型    print("Output data size is {}".format(output_data.size))    print("Output data shape is {}".format(output_data.shape))        if __name__ == "__main__":    main()    



Paddle预测流程

Paddle Infernce采用Predito进行预测。Predictor是一个高性能预测引擎,该引擎通过对计算图的分析,完成对计算图的一系列优化(如OP融合、内存/显存的优化、MKLDNN、TensorRT等底层加速库的支持等),能够大大提升预测性能。

开发预测程序需要5个步骤,以C++程序为例

参考

1、paddle 预测示例Python: www.paddlepaddle.org.cn/inference/v…

2、www.paddlepaddle.org.cn/inference/v…

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

PaddlePaddle Python 预测程序 推理
相关文章