长期支持版本

    社区创新版本

      AI4C使用手册

      安装

      1. 使用root权限,安装rpmbuild、rpmdevtools,具体命令如下

        ##  安装rpmbuild
        yum install rpm-build
        ##  安装rpmdevtools
        yum install rpmdevtools
        
      2. 使用git clone https://gitee.com/src-openeuler/AI4C.git,从目标仓库拉取代码后,使用rpmdev-setuptree在主目录下生成rpmbuild文件夹,将拉取代码中的AI4C-v0.1.0-alpha.tar.gz和相关patch文件放入rpmbuild中的SOURCES文件夹中,将AI4C.spec放入rpmbuild中的SPECS目录下。

      3. 进入SPECS目录下,用户需先使用yum-builddep --spec AI4C.spec命令安装AI4C所需依赖。再使用rpmbuild -ba AI4C.SPEC,如果构建成功即可返回上一级文件夹,再进入RPM文件夹下,使用rpm -ivh <成功构建的rpm>(若系统因存有旧版本安装包而导致的文件冲突,可以在rpm -ivh <成功构建的rpm>命令中添加一行--force选项,强制安装新版本;或者通过rpm -Uvh <成功构建的rpm>命令更新安装包)。待安装完成后,相关动态库会安装在/usr/lib64下,模型会安装在/usr/lib64/AI4C目录下。

      使用

      1. 开发者在使用前可以通过export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATHexport INCLUDE_PATH=/usr/include:$INCLUDE_PATH配置相关环境变量
      2. 开发者需先构建自己的模型,再通过onnxruntime保存成一个ONNX模型,即可通过AI4C提供的API进行推理。

      API接口

      以下接口存在动态库libONNXRunner.so中,用于模型的推理配置阶段、推理运行阶段和模型推理结束后的资源清理阶段,需要用户实现在目标优化遍的适配层内。

      1. 参数为模型存放的路径,并创建session对本次推理进行初始化和配置

        extern ONNXRunner* createONNXRunner(const char* model_path)
        
      2. 删除ONNXRunner对象

        extern void deleteONNXRunner(ONNXRunner* instance)
        
      3. 参数为模型的输入,将输入传入模型进行推理得到相应结果

        extern float runONNXModel(ONNXRunner* instance, std::vector<std::string> input_string, std::vector<int64_t> input_int64, std::vector<float> input_float)
        

      demo -- 以“创建session对本次推理进行初始化和配置”为例

      这里建议使用dlopen链接动态库,避免对目标应用构建时增加增加额外依赖。使用时开发者需根据实际需求增加异常处理机制。

      //  挂载动态库
      /*  dynamic_library_path 为动态库绝对路径,正常下载流程执行完成后,动态库将会在/usr/lib64下,这里可以直接使用动态库的名字作为输入*/
      void *sample_dylib_handle = dlopen (dynamic_library_path, RTLD_LAZY | RTLD_GLOBAL);
      
      //  获取动态库所需要调用的函数
      /*  使用函数指针储存动态库需要使用的函数,不同的目标应用对于dlsym返回值的类型转换可能不一样,使用时需要以具体应用要求为标准  */
      typedef void* (*sample_func)(const char *); //  参数和返回值以需要使用的函数为准
      
      //  function_name为动态库中需要使用的函数名,这里以createONNXRunner为例
      sample_func func = (sample_func) dlsym (smple_dylib_handle, "createONNXRunner");
      
      //  使用所需函数,
      func (model_path);
      
      //  卸载动态库
      dlclose dynamic_library_path);
      

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份