在构建TensorFlow Lite for Android时遇到问题

时间:2019-05-17 13:28:18

标签: tensorflow machine-learning tensorflow-lite

当我尝试为Android构建TensorFlow Lite时遇到很多错误。我遵循的是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分支中

有没有人设法为Android构建TensorFlow Lite,这可以给我一些建议?

1 个答案:

答案 0 :(得分:1)

我不知道第一个错误,但是我得到了第二个错误,然后尝试使用旧的NDK版本编译TFLite。尝试使用Android NDK修订版18b,不要忘记重新运行 configure 脚本。