2016-06-24 8 views
0

Ich versuche, das Android-Beispiel von Tensorflow bauen, aber immer noch in eine ärgerliche Build-Fehler läuft. Meine Schritte so weit:Tensorflow android Beispiel wird nicht gebaut

  • installiert Android Studio für das SDK. (V24)
  • Android NDK 10e (andere Versionen scheinen nicht zu funktionieren)
  • Aditionally installiert SDK-Tools 23.0.1 bauen (v24 nicht zu funktionieren scheint)
  • hinzugefügt ein Vermögen Ordner auf den Android Beispiel mit dem Anfangsmodell
  • bearbeitet die WORKSPACE-Datei auf die NDK/SDK-Speicherorte verweisen.

Ich habe mehrere Versionen von TF versucht, aber ich bekomme immer den Fehler. Irgendwelche Ideen?

Der Fehler:

C++ compilation of rule '@protobuf//:protobuf' failed: namespace-sandbox failed: error executing command /home/sander/.cache/bazel/_bazel_sander/577a8dcd97360f56540bc1f3f08ac240/tf-cat-face/_bin/namespace-sandbox ... (remaining 51 argument(s) skipped). 
src/main/tools/namespace-sandbox.c:697: execvp(argv[0], argv): No such file or directory 
Target //tensorflow/examples/android:tensorflow_demo failed to build 
Use --verbose_failures to see the command lines of failed build steps. 
+0

Können Sie ein anderes Beispiel (zB MNIST) mit Tensorflow arbeiten? Nicht sicher, ob dies ein Problem von Android-Beispiel oder Tensorflow-Installation oder Bazel ist. –

+0

Ja, das MNIST-Beispiel scheint gut zu bauen. Das ist verwirrend für mich. – Sander

+0

Das Etikett Bild Beispiel, das auch Anfang verwendet, baut auch. Ich bin ziemlich verwirrt und stecke hier fest. – Sander

Antwort

0

Bazel erstellt eine Sandbox für jede Kompilierschritt, so dass Ihr Build nichts unbeabsichtigt ist. Bei der letzten Überprüfung konnte TF die Sandbox jedoch nicht verwenden, da der Build nicht vollständig hermetisch ist. Die Fehler, Sie bekommen werden Sandbox Fehler (es ist nicht etwas finden können, die in der Sandbox sein soll ist), so können Sie die Sandbox-off mit --genrule_strategy=standalone und --spawn_strategy=standalone Flaggen drehen, zum Beispiel

bazel build --genrule_strategy=standalone --spawn_strategy=standalone //path/to/your:target 
0

Wenn Sie Suche nach einem schnellen Weg, um die TensorFlow Android Demo-App zu bauen, check out this tutorial Ich schrieb.

Die Artikel erklären mehr, aber ich erstellte this Docker image, die alle Abhängigkeiten enthält, die Sie benötigen, damit Sie nur das Docker-Bild ziehen und die Android-Demo-App erstellen können.

Die eine Gotcha ich fand, war, dass ich die --local_resources Option passieren erforderlich, um sicherzustellen, dass innerhalb Docker gelingen baut (sonst werden sie aus dem Speicher laufen, auch auf meinem 3,1 GHz, 16 GB RAM Macbook Pro):

bazel build -c opt --local_resources 4096,4.0,1.0 -j 1 //tensorflow/examples/android:tensorflow_demo 
Verwandte Themen