下载
EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
昇腾小AI

模型推理

功能介绍

使用mxVision模型推理功能通过给定输入和指定模型,进行推理获得输出结果,支持om格式的模型推理,可使用ATC工具构建的动态Batch、动态分辨率和分档动态维度模型进行推理。

接口调用流程

使用模型推理前,用户需准备好输入数据以及需要加载的模型,根据模型路径或者内存方式初始化Model类,通过调用Model类的Infer接口获取模型推理结果。输入数据必须和模型输入数据类型以及格式一致,如果用户自行申请输出数据内存,则输出数据类型和格式需和模型输出保持一致,模型输入输出信息可以通过Model类的相关接口进行查询。

模型推理调用流程参考如下:

关键接口说明如下:

  1. 调用MxInit()接口进行全局初始化。
  2. 模型初始化。

    用户需根据实际业务情况确认模型加载方式,选择从文件加载模型从内存加载模型。如果从内存加载,需要先将模型文件读取到内存,可通过以下两种方式传入。

    • 从文件加载模型,可选择直接向Model接口传入模型路径,进行初始化。
    • 通过结构体ModelLoadOptV2中的“loadType”字段指定加载方式后,再传入Model接口,其中加载方式在模型方面区分从文件加载模型,还是从内存加载模型,在内存方面区分是由系统内部管理,还是由用户管理,具体可参见ModelLoadOptV2
  3. 调用MxDeInit()接口对初始化的全局资源进行去初始化。

示例代码

以下为功能特性关键步骤的代码示例,不可以直接拷贝编译运行,仅供参考。

// 初始化
MxBase::MxInit();
{
    // 输入二进制数据, 需用户自行准备
    std::string filePath = "./test.bin";   
    // 读取输入数据到内存                                          
    void* dataPtr = ReadTensor(filePath);        
    // 输入数据类型,和模型输入数据类型一致                             
    auto dataType = MxBase::TensorDType::INT32;     
    // 构造输入shape,和模型输入shape一致                 
    std::vector<uint32_t> shape = {1, 128};       
    // 构造tensor                            
    MxBase::Tensor tensor(dataPtr, shape, dataType, 0);   
    // 构造模型输入           
    std::vector<MxBase::Tensor> inputs{tensor};
    // 模型路径,需用户自行指定                           
    std::string modelPath = "./test.om";    
    // 根据模型路径加载模型                                     
    MxBase::Model model(modelPath);           
    // 执行模型推理, outputs即为推理结果                                
    std::vector<MxBase::Tensor> outputs = model.Infer(inputs);  
}
//去初始化
MxBase::MxDeInit();
根据结构体ModelLoadOptV2方式初始化示例参考如下:
MxBase::ModelLoadOptV2 mdlLoadOpt;
mdlLoadOpt.loadType = ModelLoadOptV2::LOAD_MODEL_FROM_FILE;  // 指定模型加载方式
mdlLoadOpt.modelPath = modelPath;
MxBase::Model model(mdlLoadOpt);
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词