create_predictor 方法

API定义如下:

# 根据 Config 构建预测执行器 Predictor
# 参数: config - 用于构建 Predictor 的配置信息
# 返回: Predictor - 预测执行器
paddle.inference.create_predictor(config: Config)

代码示例:

# 引用 paddle inference 预测库
import paddle.inference as paddle_infer

# 创建 config
config = paddle_infer.Config("./mobilenet_v1.pdmodel", "./mobilenet_v1.pdiparams")

# 根据 config 创建 predictor
predictor = paddle_infer.create_predictor(config)

get_version 方法

API定义如下:

# 获取 Paddle 版本信息
# 参数: NONE
# 返回: str - Paddle 版本信息
paddle.inference.get_version()

代码示例:

# 引用 paddle inference 预测库
import paddle.inference as paddle_infer

# 获取 Paddle 版本信息
paddle_infer.get_version()

# 获得输出如下:
# version: 2.0.0-rc0
# commit: 97227e6
# branch: HEAD

convert_to_mixed_precision 方法

convert_to_mixed_precision 接口可对模型精度格式进行修改,如在选定的后端下,将 fp32 格式的模型转换为 fp16 格式,API 定义如下:

# 模型精度转换
# 参数:model_file - fp32 模型文件路径
#      params_file - fp32 权重文件路径
#      mixed_model_file - 混合精度模型文件保存路径
#      mixed_params_file - 混合精度权重文件保存路径
#      mixed_precision - 转换精度,如 PrecisionType.kHalf
#      backend - 后端,如 PlaceType.kGPU
#      keep_io_types - 保留输入输出精度信息,若为 True 则输入输出保留为 fp32 类型,否则转为 precision 类型
#      black_list - 黑名单列表,哪些 op 不需要进行精度类型转换
# 返回:NONE
paddle.inference.convert_to_mixed_precision(
    model_file,
    params_file,
    mixed_model_file,
    mixed_params_file,
    mixed_precision,
    backend,
    keep_io_types,
    black_list)

代码示例:

from paddle.inference import PrecisionType, PlaceType
from paddle.inference import convert_to_mixed_precision
import argparse

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument('src_model', type=str, help='src_model')
    parser.add_argument('src_params', type=str, help='src_params')
    parser.add_argument('dst_model', type=str, help='dst_model')
    parser.add_argument('dst_params', type=str, help='dst_params')
    args = parser.parse_args()
    black_list = set()

    convert_to_mixed_precision(
        args.src_model,     # fp32模型文件路径
        args.src_params,    # fp32权重文件路径
        args.dst_model,     # 混合精度模型文件保存路径
        args.dst_params,    # 混合精度权重文件保存路径
        PrecisionType.Half, # 转换精度,如 PrecisionType.Half
        PlaceType.GPU,      # 后端,如 PlaceType.GPU
        True,               # 保留输入输出精度信息,若为 True 则输入输出保留为 fp32 类型,否则转为 precision 类型
        black_list          # 黑名单列表,哪些 op 不需要进行精度类型转换
    )