2017-06-03 4 views
0

nicht kompilieren Ich versuche, die Tensorflow-Android-Demo zu erkunden. Ich möchte die App mit Android Studio anpassen.Kann Bazel für Tensorflow-Android

Jedoch, wenn ich einfach die instructions folgen bekomme ich Kompilierungsfehlern egal, was ich tue:

Versuch tensorflow mit bazel und NDK R12b zu kompilieren:

$bazel build -c opt //tensorflow/examples/android:tensorflow_demo 
ERROR: /home/myUser/libs/tensorflow_android/WORKSPACE:3:1: //external:io_bazel_rules_closure: no such attribute 'urls' in 'http_archive' rule. 
ERROR: /home/myUser/libs/tensorflow_android/WORKSPACE:3:1: //external:io_bazel_rules_closure: missing value for mandatory attribute 'url' in 'http_archive' rule. 
ERROR: com.google.devtools.build.lib.packages.BuildFileContainsErrorsException: error loading package '': Encountered error while reading extension file 'closure/defs.bzl': no such package '@io_bazel_rules_closure//closure': error loading package 'external': Could not load //external package. 
INFO: Elapsed time: 0.129s 

Der Versuch, eine neuere Version von bazel zu kompilieren this advice folgende:

$bazel version 
Build label: 0.2.3-jdk7 // This is my current version of bazel 

via apt-get:

$sudo apt-get upgrade bazel 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
Calculating upgrade... Done 
E: Unable to locate package bazel 

von der Quelle (versuchte bazel-0.4.2 und bazel-0.5.0):

$./compile.sh 
INFO: You can skip this first step by providing a path to the bazel binary as second argument: 
INFO: ./compile.sh compile /path/to/bazel 
    Building Bazel from scratch 
ERROR: JDK version (1.7) is lower than 1.8, please set $JAVA_HOME. 

oder

$bazel build //src:bazel 
ERROR: /home/myUser/libs/bazel/bazel-0.4.2/tools/build_rules/genproto.bzl:45:16: Traceback (most recent call last): 
    File "/home/myUser/libs/bazel/bazel-0.4.2/tools/build_rules/genproto.bzl", line 42 
     rule(gensrcjar_impl, attrs = {"src": at..."), <2 more arguments>), "_proto_compiler": attr.label(default = Label("//third_party/p..."), <4 more arguments>), "_jar": attr.label(default = Label("@bazel_tools//t..."), <4 more arguments>), "_jdk": attr.label(default = Label("@bazel_tools//t..."), ...)}, ..."}) 
    File "/home/myUser/libs/bazel/bazel-0.4.2/tools/build_rules/genproto.bzl", line 45, in rule 
     attr.label(allow_files = proto_filetype, sing...) 
allow_files should be a boolean or a filetype object. 
ERROR: /home/myUser/libs/bazel/bazel-0.4.2/src/BUILD:130:1: error loading package 'src/main/protobuf': Extension file 'tools/build_rules/genproto.bzl' has errors and referenced by '//src:embedded_tools'. 
ERROR: Loading failed; build aborted. 
INFO: Elapsed time: 0.251s 

aroung Java-Versionen Umschalten zu sehen, ob die bazel Fragen Kompilieren komm von dort:

$sudo update-alternatives --config java 
There are 4 choices for the alternative java (providing /usr/bin/java). 

    Selection Path           Priority Status 
------------------------------------------------------------ 
    0   /usr/lib/jvm/java-8-oracle/jre/bin/java   1074  auto mode 
    1   /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1071  manual mode 
* 2   /usr/lib/jvm/java-7-oracle/jre/bin/java   1072  manual mode 
    3   /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1069  manual mode 
    4   /usr/lib/jvm/java-8-oracle/jre/bin/java   1074  manual mode 

Bisher kein Glück: - /. Hat jemand erfolgreich Tensorflow für Android von der Quelle kompiliert?

Welche Version von Tensorflow, NDK, Bazel, Java sind erforderlich/kompatibel zueinander? Brauche ich wirklich Bazel? (funktionierte nie damit) Kann ich nicht einfach die android-demo in android-studio wie jede andere app kompilieren?

Ich bin mit Ubuntu 14.04, Cuda8.0, cudnn_v5.1, Titan X Pascal (nicht sicher, ob diese Dinge Materie)

+0

Hallo, können Sie mit einer neueren Version von Bazel versuchen? 0.2.3 ist eine sehr alte Version. Die neueste ist 0.5.1 – Steren

+0

0.2.3 ist die, die derzeit auf meinem System installiert ist. Die Versionen, die ich kompilieren wollte (von github geholt) waren 0.5.0 und 0.5.1 – mcExchange

+0

Warum müssen Sie es kompilieren? Die Installation von Bazel auf Ubuntu kann ohne Kompilierung erfolgen. Befolgen Sie die dedizierte Dokumentation: [Install Bazel on Ubuntu] (https://bazel.build/versions/master/docs/install-ubuntu.html) – Steren

Antwort

1

Installation Bazel auf Ubuntu ohne Kompilierung durchgeführt werden.

alle Schritte der engagierten Dokumentation Folgen: Install Bazel on Ubuntu

+0

Ich habe es noch einmal versucht. Jetzt geht es. Danke und Entschuldigung für den Flaum. – mcExchange

+0

Auch gefunden, dass nach der Installation der neuen Bazel der alte war immer noch in der $ PATH unter '~/bin' shadowing die neuere Version, die unter '/ usr/bin/bazel' ist – mcExchange