TensorFlow Lite GPU 委托失败
TensorFlow Lite GPU delegate failure
我正在尝试在 Android 上使用 TensorFlow Lite 和 GPU 委托。我正在使用从回购的 master 分支的源构建的 lib 版本(.so 文件)。问题是:ModifyGraphWithDelegate 函数总是 returns 错误。日志中有以下错误消息:
2019-04-22 15:21:16.212 688-688/com.my.app E/tflite: TfLiteGpuDelegate Prepare: Shader compilation failed: ERROR: 0:6: 'unknown' : not a legal layout qualifier id
ERROR: 0:6: 'unknown' : Syntax error: syntax error
INTERNAL ERROR: no main() function!
ERROR: 2 compilation errors. No code generated.
2019-04-22 15:21:16.212 688-688/com.my.app E/tflite: Node number 54 (TfLiteGpuDelegate) failed to prepare.
如果我像在官方示例项目中那样使用 JAVA/JNI 预构建库版本 ('org.tensorflow:tensorflow-lite:0.0.0-gpu-experimental') - 则不会出现此类错误。但我确实需要为我的跨平台代码使用 C++ 接口。
任何想法/建议表示赞赏。
如果您正在构建本机共享库,那么您可能需要手动加载 .so 库。
参见 https://groups.google.com/a/tensorflow.org/forum/#!topic/tflite/5YhFsCFtKi4
我终于成功了。错误的内部原因对我来说仍然完全未知,但重点是:
- 用于 Android 的 TFLite GPU 委托的使用(主分支)版本无法在 GPU 上正确准备 运行 标准(用于回归任务)输出节点组合 = 展平 + 密集。
- 如果换成reshape + convolution (pointwise) + squeeze,就可以了
我正在尝试在 Android 上使用 TensorFlow Lite 和 GPU 委托。我正在使用从回购的 master 分支的源构建的 lib 版本(.so 文件)。问题是:ModifyGraphWithDelegate 函数总是 returns 错误。日志中有以下错误消息:
2019-04-22 15:21:16.212 688-688/com.my.app E/tflite: TfLiteGpuDelegate Prepare: Shader compilation failed: ERROR: 0:6: 'unknown' : not a legal layout qualifier id
ERROR: 0:6: 'unknown' : Syntax error: syntax error
INTERNAL ERROR: no main() function!
ERROR: 2 compilation errors. No code generated.
2019-04-22 15:21:16.212 688-688/com.my.app E/tflite: Node number 54 (TfLiteGpuDelegate) failed to prepare.
如果我像在官方示例项目中那样使用 JAVA/JNI 预构建库版本 ('org.tensorflow:tensorflow-lite:0.0.0-gpu-experimental') - 则不会出现此类错误。但我确实需要为我的跨平台代码使用 C++ 接口。
任何想法/建议表示赞赏。
如果您正在构建本机共享库,那么您可能需要手动加载 .so 库。 参见 https://groups.google.com/a/tensorflow.org/forum/#!topic/tflite/5YhFsCFtKi4
我终于成功了。错误的内部原因对我来说仍然完全未知,但重点是:
- 用于 Android 的 TFLite GPU 委托的使用(主分支)版本无法在 GPU 上正确准备 运行 标准(用于回归任务)输出节点组合 = 展平 + 密集。
- 如果换成reshape + convolution (pointwise) + squeeze,就可以了