Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
69d59782
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
69d59782
编写于
12月 05, 2022
作者:
O
openharmony_ci
提交者:
Gitee
12月 05, 2022
浏览文件
操作
浏览文件
下载
差异文件
!12074 更新了mindspore 指导
Merge pull request !12074 from wangtongyu6/mind
上级
5a3d0b13
85bc1362
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
4 deletion
+32
-4
zh-cn/application-dev/napi/mindspore-lite-guidelines.md
zh-cn/application-dev/napi/mindspore-lite-guidelines.md
+32
-4
未找到文件。
zh-cn/application-dev/napi/mindspore-lite-guidelines.md
浏览文件 @
69d59782
...
...
@@ -54,8 +54,32 @@ MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型
**图 1**
使用MindSpore Lite进行模型推理的开发流程
![
how-to-use-mindspore-lite
](
figures/01.png
)
主要开发步骤包括模型的准备、读取、编译、推理和释放,具体开发过程及细节请见下文的开发步骤及示例。
进入主要流程之前需要先引用相关的头文件,并编写函数生成随机的输入,具体如下:
```
c
#include <stdlib.h>
#include <stdio.h>
#include "mindspore/model.h"
//生成随机的输入
int
GenerateInputDataWithRandom
(
OH_AI_TensorHandleArray
inputs
)
{
for
(
size_t
i
=
0
;
i
<
inputs
.
handle_num
;
++
i
)
{
float
*
input_data
=
(
float
*
)
OH_AI_TensorGetMutableData
(
inputs
.
handle_list
[
i
]);
if
(
input_data
==
NULL
)
{
printf
(
"MSTensorGetMutableData failed.
\n
"
);
return
OH_AI_STATUS_LITE_ERROR
;
}
int64_t
num
=
OH_AI_TensorGetElementNum
(
inputs
.
handle_list
[
i
]);
const
int
divisor
=
10
;
for
(
size_t
j
=
0
;
j
<
num
;
j
++
)
{
input_data
[
j
]
=
(
float
)(
rand
()
%
divisor
)
/
divisor
;
// 0--0.9f
}
}
return
OH_AI_STATUS_SUCCESS
;
}
```
然后进入主要的开发步骤,具括包括模型的准备、读取、编译、推理和释放,具体开发过程及细节请见下文的开发步骤及示例。
1.
模型准备。
需要的模型可以直接下载,也可以通过模型转换工具获得。
...
...
@@ -101,8 +125,8 @@ MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型
return OH_AI_STATUS_LITE_ERROR;
}
// 加载与编译模型,模型的类型为OH_AI_M
odelTypeMind
IR
int ret = OH_AI_ModelBuildFromFile(model, argv[1], OH_AI_M
odelTypeMind
IR, context);
// 加载与编译模型,模型的类型为OH_AI_M
ODELTYPE_MIND
IR
int ret = OH_AI_ModelBuildFromFile(model, argv[1], OH_AI_M
ODELTYPE_MIND
IR, context);
if (ret != OH_AI_STATUS_SUCCESS) {
printf("OH_AI_ModelBuildFromFile failed, ret: %d.\n", ret);
OH_AI_ModelDestroy(&model);
...
...
@@ -193,7 +217,7 @@ MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型
dl
)
```
-
使用ohos-sdk交叉编译,需要对CMake设置native工具链路径,即:
`-DCMAKE_TOOLCHAIN_FILE="/xxx/
ohos-sdk/linux/
native/build/cmake/ohos.toolchain.camke"`
。
-
使用ohos-sdk交叉编译,需要对CMake设置native工具链路径,即:
`-DCMAKE_TOOLCHAIN_FILE="/xxx/native/build/cmake/ohos.toolchain.camke"`
。
-
工具链默认编译64位的程序,如果要编译32位,需要添加:
`-DOHOS_ARCH="armeabi-v7a"`
。
...
...
@@ -214,3 +238,7 @@ MindSpore Lite是一款AI引擎,它提供了面向不同硬件设备AI模型
output data is:
0.000018 0.000012 0.000026 0.000194 0.000156 0.001501 0.000240 0.000825 0.000016 0.000006 0.000007 0.000004 0.000004 0.000004 0.000015 0.000099 0.000011 0.000013 0.000005 0.000023 0.000004 0.000008 0.000003 0.000003 0.000008 0.000014 0.000012 0.000006 0.000019 0.000006 0.000018 0.000024 0.000010 0.000002 0.000028 0.000372 0.000010 0.000017 0.000008 0.000004 0.000007 0.000010 0.000007 0.000012 0.000005 0.000015 0.000007 0.000040 0.000004 0.000085 0.000023
```
## 相关实例
针对MindSpore Lite 的使用,有以下相关实例可供参考:
-
[
简易MSLite教程
](
https://gitee.com/openharmony/third_party_mindspore/tree/master/mindspore/lite/examples/quick_start_c
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录