Проблема при сборке TensorFlow Lite для Android

Я получаю много ошибок при сборке TensorFlow Lite для Android. Я следую рекомендациям https://www.tensorflow.org/lite/guide/ops_select используя код:

bazel build --cxxopt='--std=c++11' -c opt             \
  --config=android_arm --config=monolithic          \
  //tensorflow/lite/java:tensorflow-lite-with-select-tf-ops

даже пробовал:

bazel build --cxxopt='--std=c++11' -c opt             \
  --config=android_arm64 --config=monolithic          \
  //tensorflow/lite/java:tensorflow-lite-with-select-tf-ops

но я получаю такие ошибки, как:

Execution platform: @bazel_tools//platforms:host_platform
external/com_google_absl/absl/synchronization/mutex.cc:1103:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::Block(PerThreadSynch *s) {
^                  ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
    [[clang::xray_always_instrument, clang::xray_log_args(N)]]
                                     ^                    ~
external/com_google_absl/absl/synchronization/mutex.cc:1450:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::Lock() {
^                  ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
    [[clang::xray_always_instrument, clang::xray_log_args(N)]]
                                     ^                    ~
external/com_google_absl/absl/synchronization/mutex.cc:1468:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::ReaderLock() {
^                  ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
    [[clang::xray_always_instrument, clang::xray_log_args(N)]]
                                     ^                    ~
external/com_google_absl/absl/synchronization/mutex.cc:1581:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) bool Mutex::TryLock() {
^                  ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
    [[clang::xray_always_instrument, clang::xray_log_args(N)]]
                                     ^                    ~
external/com_google_absl/absl/synchronization/mutex.cc:1610:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) bool Mutex::ReaderTryLock() {
^                  ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
    [[clang::xray_always_instrument, clang::xray_log_args(N)]]
                                     ^                    ~
external/com_google_absl/absl/synchronization/mutex.cc:1656:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::Unlock() {
^                  ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
    [[clang::xray_always_instrument, clang::xray_log_args(N)]]
                                     ^                    ~
external/com_google_absl/absl/synchronization/mutex.cc:1708:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::ReaderUnlock() {
^                  ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
    [[clang::xray_always_instrument, clang::xray_log_args(N)]]
                                     ^                    ~
7 errors generated.
Target //tensorflow/lite/java:tensorflow-lite-with-select-tf-ops failed to build
INFO: Elapsed time: 555.749s, Critical Path: 174.46s
INFO: 490 processes: 485 local, 5 worker.
FAILED: Build did NOT complete successfully

Также пытался следовать https://becominghuman.ai/how-to-build-tensorflow-as-a-static-library-for-android-5c762dbdd5d4, чтобы создать статическую библиотеку, но затем я получаю ошибки другого типа в других файлах

 error: 'to_string' is not a member of 'std'

Моя система сборки - Ubuntu, и я работаю в ветке r1.14.

Кому-нибудь удалось собрать TensorFlow Lite для Android, который мог бы дать мне совет?


person hamlatzis    schedule 17.05.2019    source источник


Ответы (1)


Я не знаю насчет первой группы ошибок, но я получил вторую, а затем попытался скомпилировать TFLite со старой версией NDK. Попробуйте использовать Android NDK Revision 18b и не забудьте повторно запустить скрипт configure.

person Truggvy    schedule 20.05.2019