2016-06-13 19 views
0

Ich habe Syntaxnet und Tensorflow-Serving mit Bazel gebaut. Beide betten ihre eigene (teilweise?) Kopie von Tensorflow selbst ein. Ich habe bereits das Problem, wo ich einige Teile von Tensorflow-Serving in ein Skript "importieren" möchte, das im Syntaxnet-Baum "lebt", was ich nicht herausfinden kann (ohne einige SEHR hässliche Dinge zu tun).Wie Bazel Artefakte von Tensorflow Tensorflow-Serving und Syntaxnet kombinieren?

Jetzt möchte ich "Tensorboard", aber das wird anscheinend nicht als Teil der eingebetteten Tensorflow innerhalb Syntaxnet oder Tensorflow-Serving gebaut.

So jetzt bin ich sicher "Ich mache es falsch". Wie soll ich die Artefakte kombinieren, die von verschiedenen separaten Bazel-Arbeitsbereichen erstellt wurden?

Insbesondere, wie kann ich Tensorflow (mit Tensorboard) AND Syntaxnet AND Tensorflow-Serving erstellen und sie für die Verwendung "installiert" haben, damit ich beginnen kann, meine eigenen Skripte in einem völlig separaten Verzeichnis/Repository zu schreiben?

Ist "./bazel-bin/blah" wirklich das Endspiel mit Bazel? Es gibt kein "make install" -Äquivalent?

Antwort

0

Sie haben recht, Tensorboard-Ziele werden derzeit nur im Tensorflow-Repo verfügbar gemacht und nicht die anderen beiden, die es verwenden. Das bedeutet, dass Tensorflow selbstständig ausprobiert und Tensorboard dort kompiliert/ausgeführt wird (indem man es auf das generierte Logdir zeigt), um Tensorboard tatsächlich aufzurufen.

Das Generieren der Trainingszusammenfassungsdaten in einem Protokollverzeichnis erfolgt während des Trainings, in Ihrem Fall im tensorflow/models Repo. Es sieht so aus, als ob SummaryWriter in inception_train.py verwendet wird, vielleicht können Sie also etwas ähnliches wie Syntaxnet hinzufügen. Wenn das nicht funktioniert und Tensorboard nicht verbunden werden kann, empfehle ich, ein Problem in tensorflow/models zu stellen, um dort Unterstützung für Tensorboard hinzuzufügen. Sie sollten kein Tensorboard in Tensorflow Serving benötigen.

Das Importieren von Teilen von Tensorflow Serving in Syntaxnet würde erfordern, dass Sie diese neue Abhängigkeit als Submodul (wie bei Tensorflow) oder möglicherweise ein git_repository in der WORKSPACE-Datei hinzufügen, falls dies funktioniert. Wir haben das noch nie versucht, daher ist es möglich, dass bei diesem ungeprüften Anwendungsfall etwas kaputt geht. Bitte melden Sie Probleme, wenn Sie ein Problem damit haben.

Für die Installation und den Betrieb wird Tensorflow Serving derzeit nicht unterstützt. Es ist eine Reihe von Bibliotheken, die Sie direkt in Ihre Server-Binärdatei einbinden und kompilieren (das Repo bietet einige Beispielserver und Clients), aber momentan gibt es keinen einfachen "installierten Server". Tensorflow zusammen mit Tensorboard kann jedoch von überall installiert und verbunden werden.

+0

Danke. Ich denke, ich verstehe einfach nicht die Bazel-Mentalität, wo das Repository die Installation ist. Um gegen "x" zu bauen, checkst du es aus und zeigst deinen ARBEITSBEREICH darauf. Ich bin gewohnt zu bauen, dann zu installieren und dann kompilieren gegen/usr/include/*,/usr/lib64/*, und cosuming/usr/bin, /usr/lib/pythonx.y/site-packages usw. Bazel ist ein anderes Modell. Ich werde es so ausprobieren, wie Sie es vorgeschlagen haben. Vielen Dank! – dmansfield