zoukankan      html  css  js  c++  java
  • paddle18-推理部署 【后续学习】

    推理部署

    5. 推理部署: 服务器部署已经训练好的模型进行预测

    5.1 服务器端部署
    5.1.1 安装与编译 Linux 预测库
    • 直接下载安装
    • 从源码编译
      • Server 端 预测源码编码

      • NVIDIA Jetson 嵌入式硬件预测库源码编译

          1. 准备环境
          1. 编译 paddle inference 预测库
          1. 样例测试
    5.1.2 安装与编译 window 预测库
    5.1.3 C++ 预测API介绍
    • 使用 Predictor 进行高性能预测
      paddle inference 采用 Predictor(非线程安全)进行预测。 Predictor 是一个高性能预测引擎,该引擎通过对计算图的分析,完成对计算图的一系列优化(如OP融合、内存/显存的优化、TensorRT等底层加速库的支持),能够大大提升预测性能。

    • Predictor 预测实例:
      ```
      #include "paddle_inference_api.h"

        namespace paddle_infer{
        void CreateConfig(Config* config, const std::string& model_dirname){
            // 模型 从磁盘进行加载  
            config->SetModel(model_dirname + "/model",
                             model_dirname + "/params");
            
            // 如果从内存中加载, 可以使用 SetModelBuffer 接口 
            // config->SetModelBuffer(prog_buffer,
                                      prog_size,
                                      params_buffer,
                                      params_size)
      
            config->EnableUseGpu(100 /*设定GPU初始显存池MB*/,     0 /*设定GPU ID为0*/);   // 开始GPU预测 
        }
      
      
        void RunAnalysis(int batch_size, std::string model_dirname){
            // 1. 创建 AnalsisConfig  
            Config config;
            CreateConfig(&config, model_dirname);
      
            // 2.根据config 创建 predictor  
            auto predictor = CreatePredictor(config)
            int channels = 3;
            int height = 224;
            int width = 224;
            float = input[batch_size * channels * height * width] = {0};
      
            // 3.创建输入 
      
            // 4. 运行预测引擎 
            CHECK(predictor->Run()) 
      
            // 5. 获取输出
        }   
        }   // namespace paddle_infer 
      
        int main(){
            paddle_infer::RunAnalysis(1, ",/mobilenet");
            return 0
        }
        ```
      
      • 使用 Config 管理预测配置
        config 管理 Predictor 的预测配置,提供了 模型路径设置、预测引擎运行设备选择、多种优化预测流程的选项。
        • 通用优化配置
        config->SwitchInOptim(true);    // 开启计算图分析优化,包括OP融合等; 
        config->EnableMemory;           // 开启内存/显存复用;
        
        • 设置模型和参数路径
          从磁盘加载模型时,根据模型和参数文件存储方式不同,设置Config 加载模型和参数的路径有两种方式:

          • 非combine模式: 模型文件夹model_dir下存在一个模型文件和多个参数文件时,传入模型文件夹路径,模型文件名默认为 model.
          config->SetModel("./model_dir");
          
          • combine形式: 模型文件夹model_dir下只有一个模型文件model和一个参数文件 params时,传入模型文件和参数文件路径。
          config->SetModel("./model_dir/model", "./model_dir/params");
          
        • 配置CPU预测:

        • 配置GPU预测:

    • 使用 Tensor 管理输入输出

    • 使用 PredictorPool 在多线程下进行预测

    • C++ 预测样例编译测试

    • 性能调优

    • 推理升级指南

    5.1.4 C 预测API介绍
    5.1.5 python 预测API介绍
    5.2 移动端部署
    5.3 模型压缩: PaddleSlim 模型压缩工具库,包含 模型裁剪、定点量化、知识蒸馏、超参搜索、模型结构搜素等一些列模型压缩策略。
  • 相关阅读:
    蓝桥网试题 java 基础练习 特殊的数字
    蓝桥网试题 java 基础练习 杨辉三角形
    蓝桥网试题 java 基础练习 查找整数
    蓝桥网试题 java 基础练习 数列特征
    蓝桥网试题 java 基础练习 字母图形
    蓝桥网试题 java 基础练习 01字串
    蓝桥网试题 java 基础练习 回文数
    蓝桥网试题 java 基础练习 特殊回文数
    Using text search in Web page with Sikuli
    each of which 用法
  • 原文地址:https://www.cnblogs.com/zhangtao-0001/p/14747051.html
Copyright © 2011-2022 走看看