如何为android arm64_v8a构建tensorflow benchmark_model?

时间:2018-06-18 18:01:32

标签: tensorflow bazel arm64

我在Tensorflow 1.8文件夹中使用以下命令

bazel build -c opt --cxxopt='--std=c++11' \
//tensorflow/tools/benchmark:benchmark_model \
--crosstool_top=//external:android/crosstool \
--host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
--cpu=arm64-v8a --verbose_failures

它给了我错误:

ERROR: No default_toolchain found for cpu 'arm64-v8a'. Valid cpus are: [
  k8,
  local,
  armeabi-v7a,
  x64_windows,
  x64_windows_msvc,
  x64_windows_msys,
  s390x,
  ios_x86_64,
]
INFO: Elapsed time: 0.315s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded)

Ubuntu 16.04,Bazel 0.14.1,Tensorflow 1.8

2 个答案:

答案 0 :(得分:1)

这是因为尚未在root WORKSPACE文件中配置Android NDK。 Download the Android NDK并将以下行添加到WORKSPACE:

android_ndk_repository(
    name="androidndk",
    path="<PATH_TO_NDK>",
)

答案 1 :(得分:0)

我明白了。使用bazel 0.10.1,SDK API级别27,NDK 15,构建工具27.0.3,tensorflow 1.8。

首次运行

./configure

然后

bazel build --config=monolithic --cxxopt=--std=c++11 //tensorflow/tools/benchmark:benchmark_model --config=android_arm64 --cpu=arm64-v8a --fat_apk_cpu=arm64-v8a