#android #tensorflow-lite
#Android #tensorflow-lite
Вопрос:
Я пытаюсь использовать TensorFlow Lite с делегированием графического процессора на Android. Я использую версию библиотеки (файлы .so), созданную из исходных текстов из главной ветви репозитория. Проблема в том, что функция ModifyGraphWithDelegate всегда возвращает ошибку. И в журналах есть следующее сообщение об ошибке:
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 для моего кроссплатформенного кода.
Любые мысли / предложения приветствуются.
Комментарии:
1. Здравствуйте, как вы создали делегирование графического процессора с помощью c inteface для Android? Я не вижу никаких документов для того же в tf repo.
2. Проверьте соответствующий файл СБОРКИ . Существует цель cc_binary с именем = «libtensorflowlite_gpu_gl.so » внизу и пример командной строки сборки над ним. Вам также нужно будет добавить аргумент soname в linkopts , чтобы обеспечить надлежащую загрузку библиотеки во время выполнения.
Ответ №1:
Если вы создаете собственную общую библиотеку, вам может потребоваться вручную загрузить библиотеку .so. Смотрите https://groups.google.com/a/tensorflow.org/forum /#!topic/tflite/5YhFsCFtKi4
Комментарии:
1. Я делаю это наверняка. Библиотека загружена, и ее функции доступны. Ошибка появляется во время вызова функции.
Ответ №2:
Я, наконец, заставил это работать. Внутренняя причина ошибки для меня все еще совершенно неизвестна, но суть в том:
- Используемая версия (master branch) делегата TFLite GPU для Android не может должным образом подготовиться к запуску на GPU стандартной (для задачи регрессии) комбинации выходных узлов = сглаживание плотность.
- Если заменить его на изменение формы свертка (точечно) сжатие, тогда он работает нормально.
Комментарии:
1. Я продолжаю получать
error: undefined reference to 'TfLiteGpuDelegateV2Delete
при подключении к делегатам графического процессора, в то время как libtensorflowlite.so Версия процессора все еще работает. Не могли бы вы, пожалуйста, помочь?