问题标签 [nnapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
262 浏览

machine-learning - ConvNets 的 NHWC vd NCHW 输出

在此处输入图像描述我有一个可能很愚蠢的问题。对于卷积神经网络中的不同层,NWHC 和 NCHW 格式的输出是否应该相同(例如,深度 conv2d、reg conv2d、池化等) - 特别是在使用向量表示输入/输出进行测试时。

我知道这两种格式的索引不同,但结果应该是一样的,对吧?

0 投票
2 回答
364 浏览

android - 如果我尝试在 android 8.1 下使用 GPU 委托会发生什么

下面是 NNAPI 的系统架构。 在此处输入图像描述

NNAPI 适用于 Android 8.1(API 级别 27)或更高版本。如果我尝试在 android 8.1 下使用 GPU 委托会发生什么?

0 投票
1 回答
40 浏览

android - Android NN中关于conv2D的问题:输出形状限制

当我尝试 android nn 代码时,在 Conv2D.cpp 中找到了这些:

我想知道为什么必须检查 byteSize?

代码链接: https ://android.googlesource.com/platform/frameworks/ml/+/refs/heads/master/nn/common/operations/Conv2D.cpp

163号线附近

多谢你们

0 投票
1 回答
302 浏览

tensorflow-lite - 如何让 Kirin 990 的 NPU 在 TensorFlow Lite 上运行?

我根据Post-training float16 quantization成功将 TensorFlow 模型转换为 TensorFlow Lite float16 模型。

下图是转换后的模型图。 tflite模型

我通过我的 C++ 代码在 MatePad Pro(Kirin 990) 上成功运行了它。

我专门为 NNAPI 写的是 SetAllowFp16PrecisionForFp32 和 AllocateTensors 之前的 UseNNAPI。

但性能并不好。

我查看了日志adb logcat,发现armnn和liteadapter,我认为是华为的NNAPI驱动,不支持CONV_2D和NNAPI的CPU实现的nnapi-reference等主要操作作为回退执行。

消息如下所示。

为什么 NNAPI 驱动程序除了 nnapi-reference 不支持操作?

我该如何解决?

我想知道转换后的模型中的 Dequantize 操作不应该存在,并且每个操作都应该有 float16 参数。

我不知道我的猜测是否正确,即使它是正确的,我也不知道要消除 Dequantize 操作。

(当然,我尝试了 float32 转换模型。float32 模型的输出在 SetAllowFp16PrecisionForFp32(false) 和 SetAllowFp16PrecisionForFp32(true) 之间有很大不同。

所以我得出结论,你需要对 NNAPI 进行 float16 量化。)

以下是观察总结。

假设 setUseNNAPI(true),

  • float32 模型和 SetAllowFp16PrecisionForFp32(true) 让 liteadapter 工作但输出错误。
  • float32 模型和 SetAllowFp16PrecisionForFp32(false) 让 armnn 作为后备工作。
  • float16 模型和 SetAllowFp16PrecisionForFp32(true or false) 让 nnapi-reference 作为后备工作。

请给我建议!

0 投票
0 回答
41 浏览

android - android nn_cts 测试用例是如何创建的?

NN_CTS 测试用例是使用一些脚本自动生成的。我试图了解这些测试用例是否有可用的源代码。文档也不是很清楚。

  1. 是否有任何源代码可以找到生成这些测试用例的脚本? https://android.googlesource.com/platform/frameworks/ml/+/refs/heads/android10-c2f2-release/nn/runtime/test/generated/:此位置的测试用例
  2. 是否有任何社区可以让我建议/提问以获得及时回复?

谢谢!

0 投票
1 回答
134 浏览

android - Android NDK 的 sharedmem.h 的动态库文件(.so)在哪里?

我正在尝试构建 NNAPI c++ 本机程序,我需要使用 sharedmem 库。我找到了 NeuralNetwork.h 的动态库文件,但是我找不到 sharedmem.h 的动态库文件。因此我有一个链接器错误,例如,

我如何链接 sharedmem.h 文件。

0 投票
1 回答
79 浏览

tensorflow - 具有 NNAPI 委托的 tensorflow lite 的多个实例

Tensorflow lite 中的 NNAPI 委托使用共享内存来存储图的输入和输出张量。但是共享内存池的名称是硬编码的("input_pool""otput_pool"):

现在,如果执行多个带有 NNAPI 委托的 tensorflow lite 实例会发生什么?根据我的理解,它们都将映射和使用相同的共享内存池。这不会导致比赛条件吗?

0 投票
1 回答
113 浏览

android - 如何在适用于 Android 的 Tensorflow Lite 上使用 HAL 1.2 版?

我有一个量化的 TensorflowLite 模型,我正在将其加载到运行 Android 11 的 Pixel 3 上。我使用 Tensorflow Lite 2.5 构建了模型,并且我正在使用适用于 Android 的 Tensorflow 的夜间构建。

我正在使用默认提供的 NNAPI 委托初始化 TFLite 解释器。

但是,当我加载模型时,我从 NNAPI 收到以下错误:

Android 11 应该支持 NNAPI 1.2。TensorFlow 或 Android 是否缺少一些参数来支持 NNAPI 上的更高版本?

作为参考,这是我的 gradle 文件中的依赖项:

0 投票
0 回答
72 浏览

android - Hiai Foundation 是否适用于原生 shell 程序?

我对华为 NPU 很感兴趣(我使用的是 kirin9000、990、810),我刚刚发现当我使用 hiai Foundation api 使用 NPU 时,当我通过 adb shell 构建为本机 shell 程序时,hiai Foundation 不起作用,但是,它当它通过带有 jni 的 android 应用程序运行时运行良好。

我能得到一些关于这个问题的帮助吗?

此外,当我在本机中运行 tensorflow lite benchmark_model 时,NNapi 委托不适用于 NPU 设备。是否与上述问题有关?

谢谢!

0 投票
1 回答
118 浏览

python - tflite model outputs different predictions on CPU and NNAPI

I trained and quantized a Tensorflow model on a Ubuntu 18.04 machine and I converted it to tflite format. Then I deployed it on a Linux Yocto board equipped with a NPU accelerator, tflite_runtime and NNAPI. I noticed that the same tflite model outputs different predictions when using the CPU on my PC and the NPU+NNAPI on the board for inference. The predictions are often similar, but in some cases they are completely different. I tried to disable NNAPI on the board and to make inference using the CPU and the results were the same as on the PC CPU. So I think that the problem is the NNAPI. However, I don't know why this happens. Is there a way to prevent it or to make the network more robust during training?