Skip to content

Commit

Permalink
Doc:Feature: Add correct check in faq
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaying authored and xiaying committed Jul 26, 2024
1 parent 37e6192 commit 602b2e2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
13 changes: 12 additions & 1 deletion docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,15 @@ opConverter ==> MNN Converter NOT_SUPPORTED_OP: [ ANY_OP_NAME ]
临时解决方案:升级 numpy 版本到 1.20.0 或以上

## 运行问题
### 运行结果出错 / Tensor 的 elementSize 不为各维度乘积
### 运行结果出错
- 先使用 testMNNFromOnnx.py 等测试工具进行测试,具体参见模型转换工具的正确性校验部分
- 测试工具验证正确,但运行代码结果出错,可能是如下原因:
1. 使用 Session API 运行不满足运行条件的模型,此时应换用 Module API
2. 输入的内存布局不对
3. 输入数据格式不对,int64 需要换成 int32_t ,double 需要换成 float


### 布局转换问题(Tensor 的 elementSize 不为各维度乘积)
MNN 内部对 CV 相关算子采用 NC4HW4 布局,计算 elementSize 时,channel 会上对齐到 4 返回,此内存布局允许实现的硬件自行确定内存排列方式,具体方式不对用户可见,但用户可以通过如下代码,输入或获取自己指定的NCHW / NHWC 内存布局的 Tensor / VARP。

#### Interpreter-Session API
Expand Down Expand Up @@ -237,6 +245,9 @@ OpenCL / Vulkan 采用静态变量自注册的方式往 MNN 主库注册后端.
- 目前支持OpenCL和CUDA后端进行设置
- 具体可以参考:tools/cpp/testModel.cpp
### Register 相关内存泄露说明
用 valgrind 工具检查时会报 MNN Register 相关的内存泄露,这个属于一次性的初始化内存,后续也不会增加,可视为误报
## 性能相关
### 使用 GPU 时,调用 copyToHostTensor / copyFromHostTensor 非常慢
Expand Down
8 changes: 7 additions & 1 deletion docs/tools/convert.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,13 @@ model_script.save('model_script.pt')
- testMNNFromOnnx.py :适用 onnx
- testMNNFromTorch.py :适用 pt (torchscript)

注意:对于由Torchscript转换的模型,需要自行修改`testMNNFromTorch.py`中的的输入信息来测试
注意:

- 如果模型是动态输入形状,MNN 在脚本中默认不固定部分为1,有可能在 Tensorflow / OnnxRuntime / Torch 验证阶段报错。此时需要修改脚本中对应的输入部分,比如 testMNNFromOnnx.py 中的 run_onnx(self) 函数,把输入替换为有效的输入形状和内容。
- 对于由Torchscript转换的模型,一般都需要自行修改`testMNNFromTorch.py`中的的输入信息来测试。
- 如果模型输出层是 Identity 产生的,会因为 MNN 图优化的缘故丢失,此时需要校验上一层的输出,即在脚本后接输出名来测试,如: python3 ../tools/scripts/testMNNFromTf.py XXX.pb $NAME$


### 前置
- 测试 pb / tflite :安装`tensorflow`(`pip install tensorflow`
- 测试 onnx : 安装`onnxruntime`(`pip install onnxruntime`
Expand Down

0 comments on commit 602b2e2

Please sign in to comment.