CreatePredictor 方法¶
API定义如下:
// 根据 Config 构建预测执行对象 Predictor
// 参数: config - 用于构建 Predictor 的配置信息
// 返回: std::shared_ptr<Predictor> - 预测对象的智能指针
std::shared_ptr<Predictor> CreatePredictor(const Config& config);
代码示例:
// 创建 Config
paddle_infer::Config config("../assets/models/mobilenet_v1");
// 根据 Config 创建 Predictor
auto predictor = paddle_infer::CreatePredictor(config);
注意事项:
一个 Config
对象只能用于调用一次 CreatePredictor
生成一个 Predictor
,需要通过 CreatePredictor
创建多个 Predictor
时请分别创建 Config
对象。
GetVersion 方法¶
API定义如下:
// 获取 Paddle 版本信息
// 参数: NONE
// 返回: std::string - Paddle 版本信息
std::string GetVersion();
代码示例:
// 获取 Paddle 版本信息
std::string paddle_version = paddle_infer::GetVersion();
返回值实例:
version: 2.3.0
commit: b207edf916
branch: release/2.3
ConvertToMixedPrecision 方法¶
ConvertToMixedPrecision
接口可对模型精度格式进行修改,如在选定的后端下,将 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
void ConvertToMixedPrecision(
const std::string& model_file,
const std::string& params_file,
const std::string& mixed_model_file,
const std::string& mixed_params_file,
PrecisionType mixed_precision,
PlaceType backend,
bool keep_io_types = true,
std::unordered_set<std::string> black_list = {});