2016-12-09 5 views
9

Ich bin daran interessiert, TensorFlow in eine C++ - Server-Anwendung in Visual Studio unter Windows 10 integriert und ich muss wissen, ob das möglich ist. Google hat vor kurzem Windows-Unterstützung für TensorFlow angekündigt: https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html aber von dem, was ich sagen kann, ist dies nur eine Pip-Installation für das häufiger verwendete Python-Paket und die C++ API, die Sie benötigen, um das Repo von der Quelle selbst zu erstellen: How to build and use Google TensorFlow C++ api I Ich habe versucht, das Projekt selbst mit Bazel zu erstellen, aber es gab Probleme beim Konfigurieren des Builds.Ist es möglich, TensorFlow C++ API unter Windows zu verwenden?

Gibt es eine Möglichkeit, TensorFlow C++ in nativem Windows zu verwenden (ohne Docker oder das neue Windows 10 Linux-Subsystem zu verwenden, wie ich es in anderen Posts gesehen habe)?

Danke,

Ian

Antwort

8

Es ist sicherlich möglich TensorFlow der C++ API unter Windows zu verwenden, aber es ist derzeit nicht sehr leicht. Im Augenblick wäre der einfachste Weg, gegen die C++ API unter Windows zu bauen, mit CMake zu bauen und die CMake rules for the tf_tutorials_example_trainer project anzupassen (siehe den Quellcode here). Durch das Erstellen mit CMake erhalten Sie ein Visual Studio-Projekt, in dem Sie Ihr C++ TensorFlow-Programm implementieren können.

Beachten Sie, dass die tf_tutorials_example_trainer Projekt eine Konsole-Anwendung baut, dass statisch alle der TensorFlow Laufzeit in Ihr Programm verbindet. Gegenwärtig haben wir nicht die notwendigen Regeln geschrieben, um eine wiederverwendbare TensorFlow-DLL zu erstellen, obwohl dies technisch möglich wäre: Die Python-Erweiterung ist beispielsweise eine DLL, die die Laufzeit enthält, aber nicht die erforderlichen Symbole exportiert, um TensorFlow C oder C++ zu verwenden APIs direkt.

+0

Für jemanden wie mich, der CMake nicht benutzt hat, wie benutzt man es, um 'tf_tutorials_example_trainer' zu erstellen? – HelloGoodbye

+1

Nachdem Sie die [Anweisungen zum Ausführen von cmake] ausgeführt haben (https://github.com/tensorflow/tensorflow/blob/395cfc42ee3c5842f5383f4049674c012998b133/tensorflow/contrib/cmake/README.md) und eine Reihe von Visual C++ - Projektdateien generieren, sollten Sie in der Lage sein, 'MSBuild/p: Configuration = Release tf_tutorials_example_trainer.vcxproj' im Build-Verzeichnis auszuführen (oder' tf_tutorials_example_trainer.vcxproj' in Visual Studio zu laden und von dort aus zu erstellen). – mrry

+0

Danke. Ich versuche, der Anleitung zu folgen, aber ich habe [einige Probleme] (http://stackoverflow.com/questions/43940883/errors-when-building-tensorflow-with-cmake-on-windows-10). – HelloGoodbye

5

Es gibt eine detaillierte Anleitung von Joe Antognini und eine ähnliche TensorFlow ReadMe at GitHub Erklärung der Aufbau der TensorFlow-Quelle über CMake. Sie müssen auch SWIG auf Ihrem Computer installiert haben, die die Verbindung von C/C++ - Quelle mit der Python-Skriptsprache ermöglicht. Ich habe Visual CMAKE (cmake-gui) mit der Bildschirmaufnahme verwendet, die unten gezeigt wird.

cmake-gui setup (with SWIG) for building TensorFlow C++ source with Visual Studio

In der CMake Konfiguration verwendete ich Visual Studio 15 2017-Compiler. Wenn diese Phase erfolgreich abgeschlossen ist, können Sie auf die Schaltfläche Generieren klicken, um mit dem eigentlichen Buildprozess fortzufahren.

Allerdings, in Visual Studio 2015, als ich versuchte, über das "ALL_BUILD" -Projekt zu bauen, gab das Setup mir Fehler "Build-Tools für v141 kann nicht gefunden werden". Das ging nicht weg, selbst als ich versuchte, meine Lösung zu ändern. Schließlich wurde die Lösung erfolgreich mit Visual Studio 2017 erstellt. Sie müssen den Pfad SWIG_EXECUTABLE in CMake auch manuell festlegen, bevor er erfolgreich konfiguriert wird.

Wie in der Antognini-Link, für mich dauerte der Build etwa eine halbe Stunde auf einem 16 GB RAM, Core i7-Maschine. Anschließend sollten Sie den Build überprüfen, indem Sie versuchen, die Datei tf_tutorials_example_trainer.exe auszuführen.

Hoffe, das hilft!

+1

Joe Antogninis Post schien eine nützliche Anleitung zu sein, aber am Ende vergeudete ich Stunden über Tage hinweg, weil es sehr leicht ist, nicht zu erkennen, dass man den 64-Bit MSVC Compiler verwenden sollte und sehr schwer von innen Visual Studio Im Vergleich dazu, als ich Visual Studio überbrückte und MSBuild gemäß "offiziellen" CMake-Build-Anweisungen verwendete, funktionierte es sofort. – omatai

Verwandte Themen