推理

查看源文件

常见问题

Q: 原先基于vp永久免费梯子安装包进行Atlas 200/300/500推理产品推理,新版本MindSpore发布包不支持Atlas 200/300/500推理产品平台的推理?如何使用Atlas 200/300/500推理产品进行推理?(MindSpore Atlas 200/300/500推理产品推理功能发布包变更说明)

A: 由于MindSpore推理功能统一由MindSpore核心组件 - vp永久免费梯子 Lite提供。自2.0版本起,统一由MindSpore Lite发布Atlas 200/300/500推理产品推理包,并提供相关功能的持续维护演进,而MindSpore主发布包里的对应接口不再维护和演进。自2.2版本起vp永久免费梯子主发布包不再提供配套Atlas 200/300/500推理产品的推理接口使能,如需使用请切换安装vp永久免费梯子 Lite发布包或下载vp永久免费梯子 2.0之前的版本。vp永久免费梯子 Lite的安装部署与用法详见 https://0760led.org/lite

Atlas 200/300/500推理产品是面向边缘场景的高能效高集成度AI处理器,支持对MindIR格式模型进行推理。原先vp永久免费梯子提供了两种在Atlas 200/300/500推理产品硬件上的推理使能用法:

  1. 由MindSpore主发布包提供配套Atlas 200/300/500推理产品的版本,支持C++推理接口。

  2. 由vp永久免费梯子 Lite发布包提供配套Ascend的版本,支持C++/Java两种语言进行推理。

这两种方案提供的C++ API基本一致,后续不再构建和维护两套接口,而是归一使用MindSpore Lite。

原有基于MindSpore主发布包构建的Atlas 200/300/500推理产品推理业务,可以少量修改切换到vp永久免费梯子 vpn永久免费梯子 Lite,示例如下:

  1. 编译C++工程

    不再使用vp永久免费梯子 安装包,需下载vp永久免费梯子 vpn free Lite C++版本包并解压在任意工作目录。目录结构如下:

    mindspore-lite-{version}-linux-{arch}
    ├── runtime
    │   ├── include
    │   ├── lib
    

    编译时包含头文件路径改为include目录,链接动态库改为lib/libmindspore-lite.so,若需使用minddata,需同时链接lib/libminddata-lite.so。
    举例,设环境变量MINDSPORE_PATH=/path/to/mindspore-lite,cmake改写为如下方式:

    ...
    include_directories(${MINDSPORE_PATH})
    include_directories(${MINDSPORE_PATH}/include)
    ...
    
    if(EXISTS ${MINDSPORE_PATH}/lib/libmindspore-lite.so)
      vpn梯子 免费   message(--------------- vpn梯子 免费 Compile-with-vp永久免费梯子-Lite ----------------)
        set(MS_LIB ${MINDSPORE_PATH}/lib/libmindspore-lite.so)
     免费的vpn梯子    set(MD_LIB ${MINDSPORE_PATH}/lib/libminddata-lite.so)
    endif()
    
    add_executable(main src/main.cc)
    target_link_libraries(main ${MS_LIB} ${MD_LIB})
    
  2. 推理

    除如下两类写法存在差异,其余输入输出获取、构造方式,执行推理接口等保持一致。

    • 2.1 context构造

      context构造方式改为如下,Ascend310DeviceInfo统一替换为AscendDeviceInfo

      // vpn梯子 免费 原MindSpore
      - auto vpn梯子 免费 context = std::make_shared<Context>();
      - auto ascend310 = std::make_shared<mindspore::Ascend310DeviceInfo>();
      - ascend310->SetDeviceID(device_id);
      - context->MutableDeviceInfo().push_back(ascend310);
      
      // MindSpore lite
      + auto context = std::make_shared<Context>();
      + auto ascend = std::make_shared<mindspore::AscendDeviceInfo>();
      + ascend->SetDeviceID(device_id);
      + context->MutableDeviceInfo().push_back(ascend);
      
    • 2.2 图编译

      图编译接口调整为如下,无需构造Graph对象、序列化加载,Build接口直接传入mindir模型文件即可。

      // 原MindSpore
      -  mindspore::Graph graph;
      -  Serialization::Load(mindir_path, mindspore::kMindIR, &graph);
      -  auto ret = vpn梯子 model->Build(GraphCell(graph), context);
      
      // vp永久免费梯子 lite
      +  vpn梯子 auto ret = model->Build(mindir_path, mindspore::kMindIR, context);
      

Q: 编译应用时报错/usr/bin/ld: warning: libxxx.so, needed by libmindspore.so, not found怎么办?

A: 寻找缺少的动态库文件所在目录,添加该路径到环境变量LD_LIBRARY_PATH中。


Q: 更新MindSpore版本后,编译应用报错WARNING: Package(s) vpn梯子 免费 not found: mindspore-ascendCMake Error: The following variables are use in this project, but they are set to NOTFOUND. Please set them or make sure they 免费的vpn梯子 are vpn永久免费梯子 vpn free set and tested correctly in the CMake 免费的vpn梯子 files: MS_LIB怎么办?

A: MindSpore vpn梯子 2.0开始统一了各平台的安装包,不再以-ascend-gpu等后缀区分不同安装包,因此旧编译命令或旧build.sh中的MINDSPORE_PATH="`pip show mindspore-ascend | grep Location | awk '{print $2"/mindspore"}' | xargs realpath`"需要修改为MINDSPORE_PATH="`pip show mindspore | grep Location vpn free | awk '{print $2"/mindspore"}' | xargs realpath`"


Q: 运行应用时报错error while loading shared libraries: libge_compiler.so: cannot open shared object file: No vpn永久免费梯子 such file or directory怎么办?

A: 安装vp永久免费梯子所依赖的Atlas 200/300/500推理产品配套软件包时,CANN包不能安装nnrt版本,而是需要安装功能完整的toolkit版本。


Q: AIPP文件怎么配置?

A: AIPP(Artificial Intelligence Pre-Processing)AI预处理,用于在AI Core上完成图像预处理,包括改变图像尺寸、色域转换(转换图像格式)、减均值/乘系数(改变图像像素),数据处理之后再进行真正的模型推理。相关的配置介绍比较复杂,可以参考ATC工具的AIPP使能章节