tensorflow android构建期间bazel的错误

tensorflow android构建期间bazel的错误,android,tensorflow,bazel,Android,Tensorflow,Bazel,我遵循这个教程 使用后的错误 sudo bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package ERROR: /home/hugo/.cache/bazel/_bazel_root/1c2dc229a3fb3a0c8f1a06862d6b4c74/external/local_config_cuda/crosstool/BUILD:4:1: Traceback (most recen

我遵循这个教程

使用后的错误

sudo bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package


ERROR: /home/hugo/.cache/bazel/_bazel_root/1c2dc229a3fb3a0c8f1a06862d6b4c74/external/local_config_cuda/crosstool/BUILD:4:1: Traceback (most recent call last):
File "/home/hugo/.cache/bazel/_bazel_root/1c2dc229a3fb3a0c8f1a06862d6b4c74/external/local_config_cuda/crosstool/BUILD", line 4
    error_gpu_disabled()
File "/home/hugo/.cache/bazel/_bazel_root/1c2dc229a3fb3a0c8f1a06862d6b4c74/external/local_config_cuda/crosstool/error_gpu_disabled.bzl", line 3, in error_gpu_disabled
    fail("ERROR: Building with --config=c...")
ERROR: Building with --config=cuda but TensorFlow is not configured to build with GPU support. Please re-run ./configure and enter 'Y' at the prompt to build with GPU support.
ERROR: no such target '@local_config_cuda//crosstool:toolchain': target 'toolchain' not declared in package 'crosstool' defined by /home/hugo/.cache/bazel/_bazel_root/1c2dc229a3fb3a0c8f1a06862d6b4c74/external/local_config_cuda/crosstool/BUILD.
我也尝试过用android studio构建,错误是


错误:任务“:buildExternalAssets”的执行失败。 启动进程“command”/usr/local/bin/bazel“”时出现问题

我选中了/usr/local/bin/但里面没有bazel文件夹

我假设上述错误也是由于我的bazel安装不正确造成的? 我试过bazel版本,结果

Build label: 0.4.5
Build target: bazel-out/local-fastbuild/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Thu Mar 16 12:19:38 2017 (1489666778)
Build timestamp: 1489666778
Build timestamp as int: 1489666778
所以我很确定它已经安装好了。
这里的错误是什么?如何更正它?

错误:任务:buildExternalAssets的执行失败。启动进程“command”/usr/local/bin/bazel“”时出现问题

1.这说明在“/usr/local/bin/bazel”中找不到bazel,您清楚地了解到,正如您所说,“我选中了/usr/local/bin/,但其中没有bazel文件夹。”

2.请通过命令行上的“where is bazel”命令(如果在Linux操作系统上)检查bazel在您的电脑上的安装位置

电脑:~$bazel在哪里

bazel:/usr/bin/bazel/etc/bazel.bazelrc

错误:使用--config=cuda生成,但TensorFlow未配置为使用GPU支持生成

3.看起来您正在使用针对CUDA的资源,这是您正在尝试的吗?我的意思是,您是否要编译用于在基于CUDA的设备上部署的源代码


如果是这样,“请重新运行/配置”

错误:任务:buildExternalAssets的执行失败。启动进程“command”/usr/local/bin/bazel“”时出现问题

1.这说明在“/usr/local/bin/bazel”中找不到bazel,您清楚地了解到,正如您所说,“我选中了/usr/local/bin/,但其中没有bazel文件夹。”

2.请通过命令行上的“where is bazel”命令(如果在Linux操作系统上)检查bazel在您的电脑上的安装位置

电脑:~$bazel在哪里

bazel:/usr/bin/bazel/etc/bazel.bazelrc

错误:使用--config=cuda生成,但TensorFlow未配置为使用GPU支持生成

3.看起来您正在使用针对CUDA的资源,这是您正在尝试的吗?我的意思是,您是否要编译用于在基于CUDA的设备上部署的源代码

如果是这样,“请重新运行。/configure”

(尝试在OP的线程上发表评论,但没有足够的因果报应,因此我将作为答案发布。)

whereis
命令返回两条路径,而不是一条:

  • /usr/bin/bazel
    是您的bazel二进制文件。将其设置为所需变量的路径

  • /etc/bazel.bazelrc
    是您的bazelrc文件的路径。它是Bazel的一个配置文件,您可以在其中为Bazel命令指定常用标志,例如,如果您总是像
    Bazel build--flag=value//foo
    那样构建,则可以向该文件添加一个条目
    build--flag=value
    这意味着“build”命令默认情况下始终使用此标志,这样你就不用每次都打字了。如果您的系统中不存在此文件,那么Bazel仍然可以正常工作。请在此处阅读更多信息:

(尝试对OP的帖子进行评论,但没有足够的因果报应,因此我将发布作为答案。)

whereis
命令返回两条路径,而不是一条:

  • /usr/bin/bazel
    是您的bazel二进制文件。将其设置为所需变量的路径

  • /etc/bazel.bazelrc
    是您的bazelrc文件的路径。它是Bazel的一个配置文件,您可以在其中为Bazel命令指定常用标志,例如,如果您总是像
    Bazel build--flag=value//foo
    那样构建,则可以向该文件添加一个条目
    build--flag=value
    这意味着“build”命令默认情况下始终使用此标志,这样你就不用每次都打字了。如果您的系统中不存在此文件,那么Bazel仍然可以正常工作。请在此处阅读更多信息:


还有其他选项可用于构建本机库

你可以试试build.gradle

//设置为“bazel”、“cmake”、“makefile”、“none”

def nativeBuildSystem='cmake'

最新版本的android能够添加用于构建本机LIB的cmake构建工具


我成功地使用了cmake。

还有其他选项可用于构建本机库

你可以试试build.gradle

//设置为“bazel”、“cmake”、“makefile”、“none”

def nativeBuildSystem='cmake'

最新版本的android能够添加用于构建本机LIB的cmake构建工具


我成功地完成了与cmake的合作。

我的whereis bazel展示了bazel:/usr/bin/bazel/etc/bazel.bazelrc。我使用--config=cuda,因为我只是一步一步地从教程中复制。我看了一些帖子,看起来那条线路被窃听了还是什么?我试过了,它成功了。谢谢我也在尝试从android studio构建。我是否应该将bazellocation变量更改为/usr/bin/bazel/etc/bazel.bazelrc??如果您试图从Android Studio构建,请将bazellocation变量更改为/usr/bin/bazel,并检查变量“def externalModelData='../../../bazel tensorflow master/external”是否指向有效的文件名。最初build.gradle文件有“def externalModelData=”../../../bazel tensorflow/external“”,非常感谢。您还知道演示中使用的JavaAPI实现了哪个版本的Inception吗?我如何检查(或者如果我想更改它)?是的,演示中使用了inception5h。在tensorflow根目录中,有一个工作区文件,您可以在其中找到它用于下载inception5h的URL。您可以在tensorflow/examples/android的build.gradle文件中更改它(检查最后两行)。谢谢。我似乎找不到有关Inception5h架构的任何文档,例如,有多少层等。此外,您是否尝试过在android设置中实现其他inception模型?如果是这样,事情的发展速度如何