Tensorflow: Windows-Support und -Dokumentation

Erstellt am 9. Nov. 2015  ·  180Kommentare  ·  Quelle: tensorflow/tensorflow

Ich war begeistert, Tensorflow zu sehen, aber wie viele andere Benutzer, die wir unter Windows verwenden, wäre es schön, wenn diese Unterstützung stattfinden würde. Akzeptieren Sie Windows-Portierungsbeiträge?

In der Zwischenzeit hat Microsoft kürzlich sein Deep-Learning-Toolkit veröffentlicht, das auf mehreren Computern mit GPUs für Linux und Windows skaliert. https://github.com/Microsoft/CNTK

Hilfreichster Kommentar

Vielen Dank für all das Interesse an TensorFlow unter Windows! Wir machen Fortschritte an zwei Hauptfronten:

  1. Anpassen der Bazel BUILD -Dateien von TensorFlow, damit sie unter Windows funktionieren. Möglicherweise haben Sie in letzter Zeit einige Pull-Requests von @meteorcloudy in dieser Richtung gesehen (wie #4449), und unser letztendlicher Plan ist die vollständige Unterstützung für die Erstellung von TensorFlow mit Bazel unter Windows.
  2. Ändern der TensorFlow-Laufzeit zum Erstellen mit dem Visual C++ 2015-Compiler. Ich habe daran gearbeitet, und der Unterschied zwischen HEAD und meinem Arbeitszweig wird jeden Tag kleiner. Im Moment verwende ich CMake, um TensorFlow mit Visual Studio/MSBuild zu erstellen, aber ich plane, zu Bazel zu wechseln, wenn die BUILD -Dateien plattformübergreifend funktionieren.

Wir erwarten, bald eine Ankündigung mit einem binären PIP-Paket und Anweisungen zum Erstellen von TensorFlow unter Windows zu machen. In der Zwischenzeit werden wir diese Ausgabe aktualisieren, wenn wir Neuigkeiten zu teilen haben.


Beantwortung der spezifischen Fragen von @kestrelm :

  1. Ich verwende derzeit CMake, um eine VS-Lösung mit mehreren Projekten zu generieren, und wir werden dies als Teil von Punkt (2) oben zusammenführen.
  2. Zumindest können wir eine Python-Erweiterungs-DLL generieren, die die Laufzeit und alle Kernel enthält (das Äquivalent von tensorflow/python/_pywrap_tensorflow.so ), und Anweisungen zum Erstellen einer statisch verknüpften C++-Binärdatei (das Äquivalent von tensorflow/cc/tutorials/example_trainer.cc ).
  3. Wir können leicht eine Version der Laufzeitumgebung mit diesen Funktionen erstellen (so etwas wie die Android-Teilmenge von inferenzbezogenen Kerneln in einer DLL hinter der C-API), obwohl sie wahrscheinlich nicht Teil der ursprünglichen Version sein wird. Es wird jedoch möglich sein, die Build-Dateien zu modifizieren, um ein Ziel mit diesen Eigenschaften zu erstellen, und ich helfe gerne jedem, der dies versucht.

Alle 180 Kommentare

Ich finde es ist ein toller Vorschlag!

Ebenso war ich etwas enttäuscht, dass Windows auf der Download- und Installationsseite nicht erwähnt wurde.

Hat jemand eine Idee, was die wichtigsten Inkompatibilitäten/Anpassungen sind? Handelt es sich hauptsächlich um Probleme mit Dateipfaden usw.?

Es wurde mit Bazel erstellt, das nur Linux/Mac unterstützt, aber die gute Nachricht ist, dass die Windows-Unterstützung für Bazel anscheinend bis Ende dieses Jahres auslaufen wird.

:Daumen hoch:

Sie können TensorFlow bereits auf einem Windows-Computer verwenden, indem Sie Docker verwenden.
Details gibt es in diesem Thread.
https://github.com/tensorflow/tensorflow/issues/42

Ich möchte TensorFlow unter Windows ohne Docker verwenden, um GPU-Computing zu nutzen. Die Verwendung von Docker in diesem Fall verwendet keinen Windows-Container, sondern eine virtuelle Linux-Maschine auf Hyper-V oder VirtualBox, sodass die GPU nicht durchgereicht wird.

:+1:

Google, geben Sie uns bitte Windows-Unterstützung!

+1/0.0

+1

Ja, Windows-Unterstützung wäre super nett.

+1
+1
+1

ja bitte

Würde gerne TensorFlow unter Windows verwenden (nativ, nicht in einer VM).

Ich werde prüfen, ob Continuum ein Conda-Paket für Tensorflow bereitstellen kann.

Nach der Verwendung von Bazel in der gesamten Dokumentation zu urteilen, gehe ich davon aus, dass es darum geht, darauf zu warten, dass Bazel Windows unterstützt. Gibt es etwas Spezifisches für Tensorflow, das angegangen werden müsste, damit Windows unterstützt wird, oder ist es nur Bazel?

Eine Frage, die ich habe, ist, wann der Bazel-Support tatsächlich auf Windows eintrifft. Wenn man sich das Bazel-Repository ansieht, heißt es, dass sie planen, Android in Windows zu unterstützen, aber ich habe keinen Hinweis auf das Erstellen (was ich vermute) nativer Pakete gesehen.

Hier ist der Fehler, den wir verwenden, um den Bazel-Support für Windows zu verfolgen: https://github.com/bazelbuild/bazel/issues/276. Vor einem Monat konnte @dslomov Bazel dazu bringen, sich selbst unter Windows zu booten. Der Windows-Support soll bis Ende dieses Jahres abgeschlossen sein.

@davidzchen Ich habe heute Nachmittag tatsächlich mit diesem Repo gearbeitet, um es ohne viel Glück auszuprobieren. Ich könnte noch etwas damit herumspielen, um zu sehen, ob ich es dazu bringen kann, sich selbst erfolgreich zu booten.

+1 native Unterstützung für Windows sollte verfügbar sein

+1

oder vielleicht könnten wir es auf ein vernünftigeres Build-System portieren. vielleicht cmake.

@ahmadia hast du tipps zur installation von tensorflow mit conda?

Im Moment sitzen wir im selben Boot wie alle anderen, weil es keine Portierung von TensorFlow auf Windows gibt. Wenn jemand eine Windows-Portierung zusammenstellen kann, helfe ich gerne beim Erstellen/Bereitstellen von Binärdateien. Jemand hat bereits ein Rezept für OS X/Linux zusammengestellt, das mit conda install -c memex tensorflow verfügbar ist.

+1 dafür

+1

+1
auch cmake support wäre toll

Ich habe hier einen Artikel mit Anweisungen und Screenshots zusammengestellt, um TensorFlow auf einem Windows-Computer mit Docker zum Laufen zu bringen, wobei ich die Tipps aus Ausgabe 42 verwende, falls es für jemanden hilfreich ist.

Obwohl ich mir immer noch nicht sicher bin, wie ich meine GPU nutzen kann, wenn TensorFlow in einer VM auf meinem Windows-Computer ausgeführt wird.

+1 native Windows-Unterstützung wäre äußerst hilfreich

+1

Ich möchte eine Version von TensorFlow für Windows 7 haben, wenn Sie haben, senden Sie mir bitte eine E-Mail.
Meine E-Mail-Adresse: [email protected].
Danke!

+1

Die Windows-Unterstützung ist ein ziemlich dramatischer Aufwand. Vielleicht wäre die Unterstützung von Windows nur für einen echten Standard-Compiler (gcc / tdm-gcc / mingwpy) und auf einem modernen Python (3.4?) ein viel einfacheres Ziel?

Vielleicht wäre die Verwendung des Clang-Frontends mit VC++ CodeGen der schnellste Weg, um funktionierende Windows-Builds zu erhalten -> Clang mit Microsoft CodeGen in VS 2015 Update 1 . Project wurde entwickelt, um eine konsistent funktionierende Toolchain für plattformübergreifende Code-Builds bereitzustellen, die hauptsächlich auf Windows abzielen, dennoch könnte ein Szenario, in dem *nix-Code auf Windows kompiliert wird, ebenso interessant sein. Das MSFT C++-Team gibt an, dass der von ihnen geschriebene Code in das LLVM-Projekt zurückgeführt wird, sodass dies eine schnelle und gemeinsame Arbeit an einer guten plattformübergreifenden Unterstützung ermöglichen sollte.

+1

+1

+1

+1

+1

+1

+1

+1 . Dies ist das erste Python-Paket, an das ich mich erinnere, das nicht unter Windows funktioniert. Es scheint mir seltsam, da ich verstehe, dass die Treiber von NVIDIA unter Windows immer besser waren als unter Linux, und ich habe eine GTX 970, die sich heutzutage langweilt.

Ich habe den größten Teil des Tensorflow-C ++ auf einen Windows-Build portiert, der vc 2013 verwendet. Bisher verwendet der meiste Code, der kompiliert und verknüpft wird, meine eigene Quelldatei. Die größte Herausforderung, die ich umgehen muss, ist Folgendes: Es verwendet eine statische Variable, um op und Kernel zu registrieren. Ich baue sie als statische Bibliothek und der App-Link darauf überspringt diese statische Variable. Ich muss eine stub.cpp im App-Ordner verwenden, um verwendete Ops und Kernel einzuschließen.

@yuanhua8 Gibt es eine Chance, dass Sie Ihre Änderungen in ein Github-Repo übertragen? Übrigens habe ich die Sache mit der statischen Registrierung in Caffe gelöst, indem ich dumpin verwendet habe, um einen Header zu generieren, der das Liken von Symbolen erzwingt. Einzelheiten finden Sie unter https://github.com/BVLC/caffe/pull/2816 und https://github.com/willyd/caffe/tree/msvc .

Ich hoffe, dass natives Tensorflow für Windows bald fertig ist, muss möglicherweise warten, bis Bazel für Windows stabil ist, und bin begeistert, den Deep-Learning-Kurs von Google und Udacity auszuprobieren!

FYI Windows - Support für Bazel ist derzeit eine unserer obersten Prioritäten . Bleib dran.

Auch hier habe ich mit dem von Google angebotenen Deep-Learning-Kurs begonnen und hier stecke ich fest, weil ich Windows ausführe.
Wann können wir mit Unterstützung für Windows rechnen?

Ich habe bemerkt, dass viele Leute ein Problem hatten, dies unter Windows auszuführen, also habe ich kurz beschrieben, wie man es unter Windows mit Vagrant und Docker einstellt:

https://medium.com/@Rapchik/running-google-s-deep-learning-course-material-under-windows-82d468b6d5be

@umarniz Danke für die Anleitung. Ich denke jedoch, dass die meisten Leute hier erwarten, dass TensorFlow aufgrund der GPU-Unterstützung nativ unter Windows ausgeführt wird. Das funktioniert leider meines Wissens weder mit Docker noch mit einer anderen Lösung, die Virtualisierung verwendet ...

@SeveQ Ich stimme voll und ganz zu und persönlich bevorzuge die Verwendung von Linux für alle meine ML-Experimente, da es einfach ist, mehrere eindeutige Programmierumgebungen einzurichten. Dieser Leitfaden sollte das Kursmaterial von Google ausführen, da die Trainingssätze und Beispiele, die sie haben, für Anfänger mit kleineren Datensätzen gedacht sind, die auch in einer reinen CPU-Umgebung ausgeführt werden können sollten.

@umarniz Okay, wollte deine Bemühungen nicht verunglimpfen. Definitiv nicht! Das hast du toll geschrieben! Danke noch einmal!

Übrigens, nur um das zu erwähnen... das zugegebenermaßen schon nicht mehr so ​​einfache Deep MNIST-Beispiel dauert auf meiner CPU mehrere Stunden, während meine GPU (GTX 980Ti) es in höchstens ein paar Sekunden durchrauscht. Auf einem nativen Ubuntu also. Ich habe eine auf einem USB-Stick eingerichtet. Es funktioniert, aber Dual Boot kann ziemlich umständlich und ein enorm demotivierender Faktor sein. Umso mehr, da ein Windows im Ruhezustand auf einem UEFI-System ziemlich wählerisch sein kann, wenn es darum geht, von Linux aus auf Daten auf NTFS-Partitionen zuzugreifen ...

Sicher, ich stimme voll und ganz zu, dass Linux (Ubuntu) das beste Betriebssystem für ML-Aufgaben ist, weil es das ist, das die meisten Leute verwenden, und das nicht ohne Grund. Aber es hat immer noch seine Nachteile für Enthusiasten wie mich, die ML nicht nur beruflich, sondern auch als Hobby betreiben und parallel andere Hobbys haben, die auf Windows angewiesen sind ... wie zum Beispiel Spiele.

Ich denke, das sind einige First-World-Probleme, die ich trotzdem gerne gelöst sehen würde.

@SeveQ Ich habe es auch nicht so aufgenommen :)

Ich stimme zu, dass Dual Boot ein Schmerz ist, ich musste für ein paar Monate komplett auf Ubuntu umsteigen, sonst wird es ziemlich umständlich zu wechseln, aber ich liebe die Leistung, die die Bash-Shell für die Arbeit mit großen Datensätzen bietet.

Ich denke, ich werde sehen, was ich tun kann, um selbst Windows-Unterstützung für TensorFlow hinzuzufügen.

+1

@umarniz Klingt gut. Ich habe momentan leider nicht die Zeit, mich dem auch zu widmen. Andere Prioritäten wie der Abschluss ... Windows-Unterstützung für TensorFlow wäre in dieser Angelegenheit jedoch eine große Hilfe. Ich mache meinen Abschluss als MSc., Systems Engineer, spezialisiert auf, wer hätte das gedacht, maschinelles Lernen...

Gibt es hierzu Neuigkeiten

Ich mache einen Port des C++-Codes in unseren internen Zweig. Entschuldigung, kann nicht zurückveröffentlicht werden, da es von unserem Code-Zweig abhängig ist. Finden Sie eine Lücke zwischen C++ und Python. Aber die Core-Engine funktioniert für mich in unserer Windows/Vc-Umgebung.
H y

von meinem Iphone gesendet

Am 30. Januar 2016 um 2:46 Uhr schrieb datashinobi [email protected] :

Gibt es hierzu Neuigkeiten


Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an.

Für alle, die Tensorflow nutzen wollen und auf GPU-Unterstützung verzichten können, gibt es hier einen Blogpost über die Installation von Tensorflow mit Jupyter-Notebook-Unterstützung für Windows mit Docker.

Ein Update zur Windows-Unterstützung für Bazel: Die anfänglichen Patches, mit denen Bazel unter Windows funktioniert, wurden zusammengeführt (siehe bazelbuild/bazel#276), und @dslomov konnte Bazel dazu bringen, sich selbst unter Windows zu booten.

Wir planen experimentelle Unterstützung für Windows in Bazel 0.3 . Wenn Sie unseren Fortschritt verfolgen möchten, sehen Sie sich die mit „Windows“ gekennzeichneten Probleme im Issue Tracker von Bazel an.

C:\Users\Desktop>docker run -it b.gcr.io/tensorflow/tensorflow

Das Bild „b.gcr.io/tensorflow/t ensorflow:latest “ kann lokal nicht gefunden werden

Docker: Fehlerantwort vom Daemon: Registrierungsendpunkt https://bg kann nicht gepingt werden
cr.io/v0/
v2-Ping-Versuch fehlgeschlagen mit Fehler: Get https://b.gcr.io/v2/ : dial tcp 64.233.188
.82:443: E/A-Zeitüberschreitung

Irgendwelche Neuigkeiten bezüglich der Möglichkeit, TensorFlow in Windows ohne Docker zu verwenden?
Wie schwierig wäre es, einen CMake-Build-Prozess anzubieten, der sowohl für Linux als auch für Windows funktioniert (Erstellen eines MVS-Projekts)?

Ich habe Anweisungen zum Installieren von Tensorflow auf einer virtuellen CentOS-Maschine geschrieben. Wenn Sie Probleme bei der Arbeit mit Docker haben, könnte dies Ihre Lösung sein.

Leute, wenn Sie Bash unter Windows mit der neuen Entwicklervorschau installieren, wird Tensorflow installiert und funktioniert irgendwie. Sie können das also verwenden, um es unter Windows auszuführen, ohne Docker zu verwenden. (Und es würde wahrscheinlich die Bash für Windows verbessern, weil mehr Leute sie verwenden.)

Das ist fantastisch.
Die Verwendung von Bash unter Windows war meine größte Hoffnung, Tensorflow unter Windows zu verwenden.

Die größte Frage ist, ob Sie die GPU-Treiber verwenden können?

Das ist der Hauptgrund, warum Leute nach einer nativen Tensorflow-Installation in Windows fragen. Ansonsten ist die CPU-Unterstützung über Docker oder virtuelle Linux-Maschinen in Ordnung

Ich habe keine Kenntnis darüber, aber wir sollten das Windows-Team danach fragen.
Die Leute haben GUI-Programme bekommen, um durch Windows zu arbeiten, aber es verwendet keine CPU
GPU, also denke ich, dass es derzeit keinen Zugriff hat
Am 19. April 2016 um 17:37 Uhr schrieb "hayder78" [email protected] :

Das ist fantastisch.
Die Verwendung von Bash unter Windows war meine größte Hoffnung, Tensorflow unter Windows zu verwenden.

Die größte Frage ist, ob Sie die GPU-Treiber verwenden können?

Das ist der Hauptgrund, warum Leute nach einer nativen Tensorflow-Installation fragen
in Fenstern. Ansonsten ist die CPU-Unterstützung über Docker oder Linux in Ordnung
virtuelle Maschine


Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail oder zeigen Sie sie auf GitHub an
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -212156142

Ja. Ich habe gelesen, dass GUI-Programme, die in Windows über Bash ausgeführt werden, einen generischen GPU-Treiber verwenden. Was bedeutet, dass die nvidia-Treiber nicht verwendet werden.

Lasst uns beten, dass Google unter der Haube an einem Tensorflow für Windows arbeitet.

Ich denke, Bash für Windows braucht Zeit, um ausgereift und fehlerfrei zu sein. In der Zwischenzeit werden wahrscheinlich VM und Docker die bessere Wahl sein.

Ich treffe jetzt die Wahl zwischen Tensorflow und CNTK.

+1 für native Windows-Unterstützung, einschließlich GPU.

Der von @davidzchen bereitgestellte Link zum Verfolgen von Bazels Windows-Problemen funktioniert nicht, der richtige ist https://github.com/bazelbuild/bazel/labels/category%3A%20windows

(Ich weiß, dass alle auf Windows-native Unterstützung + GPU hoffen, ich warte auch, aber wir müssen warten, bis Bazel für Windows stabil wird, das Helfen beim Testen und Beitragen zu Bazel wird den Prozess wahrscheinlich beschleunigen)

ein weiteres +1 für Windows mit GPU-Unterstützung. Obwohl TF eine bessere Option zu sein schien, musste ich aufgrund fehlender GPU-Unterstützung unter Windows zu Theano wechseln. Es wäre schön, wenn in der Roadmap von TF erwähnt wird, ob in zukünftigen Versionen Unterstützung verfügbar sein wird, da dies bei vielen Entscheidungsfindungen von Forschern hilfreich sein wird.

+1

+1

Eine interessante Neuigkeit: @shanselman schrieb einen Blogbeitrag über die Ausführung von TensorFlow auf Bash für Windows.

Wir beabsichtigen nach wie vor, erstklassigen Windows-Support zu bieten, aber abenteuerlustige Benutzer finden dies möglicherweise eine gute Möglichkeit, in der Zwischenzeit loszulegen.

@mrry Hallo Derek Murray,
Ich freue mich, von Ihnen als Google-Softwareentwickler zu hören, dass Sie beabsichtigen, eine native Windows-Unterstützung für Tensorflow bereitzustellen. Sind Sie Teil des Tensorflow-Entwicklerteams bei Google?

Jetzt habe ich wenigstens eine Hoffnung.

Gibt es eine grobe Schätzung, wann es eine Beta-Version geben wird?

Ein weiterer +1, sehr daran interessiert, dies zu sehen. Wenn Bazel tatsächlich unter Windows läuft, wird TF tatsächlich auf der Plattform kompiliert? Oder gibt es auch andere Portabilitätsprobleme, z. B. Netzwerk-, Dateisystemaufrufe?

+1

Leute, könnten Sie bitte GitHub-Reaktionen verwenden, anstatt "+1" in eine neue Nachricht zu schreiben? Im Moment produziert es eine Menge Spam für Leute, die Updates in diesem Thread abonniert haben. Danke!

+1 für GitHub-Reaktionen!

Nun, Bazel scheint jetzt die meiste Zeit unter Windows zu funktionieren, abgesehen von ein paar Namensfehlern (unzulässige Zeichen oder sehr lange Befehle). Es gibt definitiv andere Probleme, einen funktionierenden Windows-Tensorflow zu bekommen, als nur einen funktionierenden Bazel zu haben. Alle Fehler, die ich bisher bekommen habe, sind von der Art:
ERROR: C:/tensorflow-orig/tensorflow/contrib/metrics/BUILD:16:1: in linkshared attribute of cc_binary rule //tensorflow/contrib/metrics:python/ops/_set_ops.so: 'linkshared' used in non-shared library. Since this rule was created by the macro 'tf_custom_op_library', the error might have been caused by the macro implementation in C:/tensorflow-orig/tensorflow/tensorflow.bzl:599:31.
Ich vermute also, dass die Build-Regeln zuerst für Windows aktualisiert werden müssen.

Die offizielle Roadmap von Tensorflow:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/resources/roadmap.md

Die Windows-Unterstützung ist Teil der Roadmap für die nahe Zukunft, die für die nächsten Monate vorgesehen ist!

@Sabrewarrior Ich habe versucht, den Tensorflow unter Windows mit Bazel zu erstellen, aber die Konfigurationsdatei gibt nur einige Fehler aus. Ich frage mich, ob Sie einige Teile dieser Datei geändert oder hinzugefügt haben, damit sie unter Windows unterstützt werden

@Fhrozen https://github.com/Sabrewarrior/tensorflow/blob/test/tf_win_env.txt
Dies sind meine installierten Pakete, als ich configure ohne Änderungen ausgeführt habe. Ich führe dies auf msys2 mit Python 2.7 auf einem Windows 10-Computer aus.

@Sabrewarrior danke für die Antwort. Ich habe es überprüft, waren die Leerzeichen im Ordnernamen mein Problem.
Jetzt habe ich diesen Fehler in der Cuda-Version.

`Bitte geben Sie an, welcher gcc nvcc als Host-Compiler verwendet werden soll. [Standard ist /mingw64/bin/gcc]:
Bitte geben Sie die Cuda SDK-Version an, die Sie verwenden möchten, z. B. 7.0. [Leer lassen, um Systemstandard zu verwenden]: 7.5
Bitte geben Sie den Speicherort an, an dem das CUDA 7.5-Toolkit installiert ist. Weitere Einzelheiten finden Sie in README.md. [Standard ist /usr/local/cuda]: C:/CUDA/v7.5
Bitte geben Sie die Cudnn-Version an, die Sie verwenden möchten. [Leer lassen, um Systemstandard zu verwenden]: 4.0.7
Bitte geben Sie den Speicherort an, an dem die cuDNN 4.0.7-Bibliothek installiert ist. Weitere Einzelheiten finden Sie in README.md. [Standard ist C:/CUDA/v7.5]: cuda/
Bitte geben Sie eine Liste der durch Kommas getrennten Cuda-Rechenfunktionen an, mit denen Sie erstellen möchten.
Die Rechenleistung Ihres Geräts finden Sie unter: https://developer.nvidia.com/cuda-gpus.
Bitte beachten Sie, dass jede zusätzliche Rechenleistung Ihre Build-Zeit und Binärgröße erheblich erhöht.

Einrichten von Cuda umfassen
Cuda einrichten
ln: Fallo al Crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': Keine solche Datei oder Verzeichnis
ln: Fallo al Crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.props': Keine solche Datei oder Verzeichnis
ln: Fallo al Crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': Keine solche Datei oder Verzeichnis
ln: Fallo al Crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.targets': No such file or directory
ln: Fallo al Crear el enlace simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/CUDA': Keine solche Datei oder Verzeichnis
ln: Fallo al Crear el Enlace Simbólico '../../../third_party/gpus/cuda/extras/visual_studio_integration/MSBuildExtensions/7.5.xml': No such file or directory
xargs: bash: mit Status 255 beenden; abbrechen
`

@Fhrozen AFAIK Sie können gcc nicht als Compiler für CUDA unter Windows verwenden. Nur Visual C++ Compiler wird von CUDA unter Windows unterstützt ( siehe hier ).

+1

AUFS NEUE! BITTE MACHEN SIE KEINE UNNUTZIGEN _+1_ KOMMENTARE! VERWENDEN SIE STATT DIE GITHUB-REAKTIONEN!

+1

Stopp +1!!!

Ich wiederhole, stoppe +1 um $%{^¥ willen! Jeder, der danach +1 kommentiert, ist ein Idiot! :-P Verwenden Sie Github-Reaktionen, verdammt!

Kann mir jemand einen Moderatorenstatus geben? Ich möchte dieses Problem von nutzlosen +1-Kommentaren befreien.

Hallo Team. Ich versuche zu verstehen, welche Arbeit getan werden muss, um TensorFlow unter Windows (10, schätze ich) mit GPU-Unterstützung über CUDA verwenden zu können. Soweit ich weiß, schließt das Docker aus, da Docker nicht auf die GPU des Hosts zugreifen kann und bedeutet, dass wir die cl.exe von Visual Studio verwenden müssen (was Bazel für Windows verwendet).

Ist es daher nur Bazel für Windows, das weiterentwickelt werden muss? Ist das die einzige unbefriedigte Abhängigkeit hier? Gerne in jedem Punkt korrigiert.

Wenn ich Bash unter Windows aktivieren möchte, muss ich das Windows-Subsystem für Linux (Beta) überprüfen, richtig? Aber ich kann dieses Menü im Dialogfeld "Windows-Funktionen" nicht finden. Ich folge der Anleitung hier und hier .
Muss ich das Kontrollkästchen „Hyper-V“ im Dialogfeld „Windows-Funktionen“ aktivieren?
Den Entwicklermodus habe ich auch schon in den Einstellungen aktiviert.

Es scheint, als müsste ich diese Windows-Beta-Bash-Funktionen verlassen und Docker unfreiwillig verwenden?

@off99555 Ihr Windows 10 sollte die neueste Vorschauversion haben (Fast Ring). Überprüfen Sie Ihren Build, wenn er niedriger als ~14000 ist, dann haben Sie diese Funktion noch nicht. (Dieses Update wird am 2. August allgemein verfügbar sein)

Hallo,

Werden wir für die Tensorflow-Windows-Unterstützung in der Lage sein, Windows-Binärdateien zu erstellen, die keine msys2-Binärdateien sind? Dies ist sinnvoll, da eine tatsächliche Bereitstellung auf den Computern der meisten Benutzer möglich wäre.

Wenn dies nicht möglich ist, können wir für diesen Zweck einfach eine abgespeckte Version des Vorhersagedurchlaufs/Vorwärtsdurchlaufs der Bibliothek bereitstellen? Ich kann problemlos unter Linux trainieren, aber für den eigentlichen Vorhersageprozess würde ich gerne in der Lage sein, auf einer normalen Windows-Box ohne msys2 bereitzustellen. Steht das auf der Roadmap?

Wenn Sie sich ansehen, was CNTK tut:
https://github.com/Microsoft/CNTK/wiki/Native-Evaluation-Interface

Sie haben eine viel einfachere Möglichkeit, Auswertungen/Vorhersagen mit einer abgespeckten DLL durchzuführen. Können wir so etwas auch in Tensorflow für Windows haben (und andere Plattformen, die ich mir vorstellen kann, werden es sehr nützlich finden).

Danke!

Ich verstehe nicht, warum Sie Unterstützung für Mac OS und nicht für Windows erhalten. Auf den meisten Macs können Sie keine normale CUDA-GPU verwenden. Es ist eine nutzlose Plattform für Deep-Learning-Training

Kann uns das Team bitte etwas über Schätzungen für native Windows-Unterstützung sagen?

@mrry arbeitet aktiv daran und kann weitere Updates dazu bereitstellen, wenn Sie spezifische Fragen haben.

@aselle Vielen Dank für das nützliche Update, sehr geschätzt!

@mrry Hallo, wie werden die Besonderheiten der Windows-Implementierung eingeführt?

1) Werden wir (idealerweise) eine VS2015-Lösung haben, die wir mit unseren Apps/Tools erstellen können? Eine cmake-Methode, die die VS-Lösung generiert, funktioniert ebenfalls.

2) Wird dies eine statisch gelinkte oder dynamisch gelinkte Bibliothek sein?

3) Wird es ein leichtgewichtiges Weiterleitungs-/Evaluierungsmodul/eine Bibliothek geben, die wir für die Bereitstellung mit unseren Tools/Apps verwenden können?

Die aktuelle Ressource, die ich zum Bereitstellen von Tensorflow mit einer eigenständigen C++-App finden konnte, ist hier:
https://medium.com/jim-fleming/loading-a-tensorflow-graph-with-the-c-api-4caaff88463f#.7ejb8h7zk

Mein Hauptanliegen ist das, was hier gesagt wird:
„Der Build ist riesig und kommt auf 103 MB, selbst für dieses einfache Beispiel. Vieles davon ist für TensorFlow, CUDA-Unterstützung und zahlreiche Abhängigkeiten, die wir nie verwenden. Dies gilt insbesondere, da die C++-API derzeit nicht viele Funktionen unterstützt. da ein großer Teil der TensorFlow-API nur Python ist. Es gibt wahrscheinlich eine bessere Möglichkeit, mit TensorFlow zu verknüpfen (z. B. gemeinsam genutzte Bibliothek), aber ich habe es noch nicht zum Laufen gebracht."

Wenn es eine bessere Möglichkeit gibt, das Verknüpfen einer großen statischen Bibliothek zu umgehen, ist dies großartig, insbesondere für die Zwecke eines Vorwärtsdurchlaufs/einer Vorwärtsauswertung, die nicht wirklich GPU-Unterstützung benötigt.

Danke!

@mrry Wie können sich andere daran beteiligen? Wie können wir helfen, TensorFlow so schnell wie möglich unter Windows zum Laufen zu bringen? Zumindest können wir beim Testen und Melden von Fehlern helfen.

+1

Irgendwelche Updates für Windows? Was ist erforderlich, damit es nativ ausgeführt wird und auch GPU verfügbar ist?

Wir brauchen Windows-Unterstützung!!!!
Kann uns das Team bitte etwas über Schätzungen für native Windows-Unterstützung sagen?

Keine Fenster? warum? zumindest reine CPU-Versionen?

Hier ist eine Zusammenfassung dessen, was meiner Meinung nach in diesem Windows-Supportproblem passiert:

Tensorflow erfordert, dass Bazel aus dem Quellcode erstellt wird. Wenn ich mich nicht irre, ist Bazel ein Build-System wie GNU Make, aber kein Compiler.

Basierend auf dem, was ich gesehen habe, als ich den Code kurz durchsuchte, verwendet der Quellcode von Tensorflow selbst hauptsächlich die Standard-C++-Bibliothek für Dinge wie Threading, sodass es kein Problem sein sollte, unter Windows zu kompilieren, wichtige Bibliotheken von Drittanbietern, die alle verwendet werden, haben Windows-Unterstützung.

Daher denke ich, dass das Hauptproblem eher im Fehlen einer Build-Methode für Windows als im Quellcode selbst liegt. Es gibt Arbeiten zur Verwendung von CMake zum Erstellen anstelle von Bazel, die jedoch noch nicht abgeschlossen sind. Wenn jemand Bazel-Build-Regeln in CMakes übersetzen kann, denke ich, dass wir in der Lage sein werden, es unter Windows zu erstellen.

Stabiler Bazel-Support für Windows hat noch einen langen Weg vor sich .

Bitte korrigieren Sie mich, wenn ich hier einen Fehler gemacht habe.

@eiva Wenn Sie nur CPU-Unterstützung wünschen, können Sie Tensorflow in einer virtuellen Maschine ausführen. Ich habe es unter Ubuntu 14 auf einem Windows 10-Host ohne Probleme ausgeführt.

@rongjiecomputer Ich frage mich ehrlich gesagt, warum sie überhaupt Bazel verwendet haben ...

@eiva Es gibt auch einen fertig gebauten Docker-Container, den Sie auf einem Windows-Host verwenden können. Funktioniert out-of-the-box. Es macht einfach nicht so viel Spaß, ohne GPU-Unterstützung mit Tensorflow zu arbeiten. Für die coolen Sachen ist mindestens eine einzelne GPU Voraussetzung. Sie können natürlich grundlegende Dinge wie lineare oder logistische Regression ohne GPU ausführen. Aber das ist einfach nicht der lange Anzug von Tensorflow. Es wurde für Deep-Learning-Aufgaben entwickelt, die im Grunde eine GPU erfordern.

@marklit Ich verwende es bereits auf diese Weise, aber der größte Teil meiner App läuft unter Windows, und der größte Teil der Entwicklung findet unter Windows statt ... Es ist nicht einfach, das Betriebssystem jedes Mal zu wechseln, wenn ich etwas mit verschiedenen Teilen des Systems mache ...

@LooRong
Deine Spekulation ist richtig!
https://www.quora.com/Why-did-Google-decide-to-use-Bazel-with-TensorFlow/answer/Derek-Murray-3

Am 12. September 2016, 12:17 Uhr, „Eugene Ivanchenko“ [email protected]
schrieb:

@marklit https://github.com/marklit Ich benutze es schon so, aber am meisten
meiner App, die unter Windows ausgeführt wird, und der größte Teil der Entwicklung ist im Gange
Windows ... Es ist nicht einfach, das Betriebssystem jedes Mal zu wechseln, wenn ich etwas damit mache
verschiedene Teile des Systems ...


Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -246239719,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AEBIBhhA-t1MrFnddm5k-wER0KAm_p30ks5qpNJTgaJpZM4GexU4
.

Vielen Dank für all das Interesse an TensorFlow unter Windows! Wir machen Fortschritte an zwei Hauptfronten:

  1. Anpassen der Bazel BUILD -Dateien von TensorFlow, damit sie unter Windows funktionieren. Möglicherweise haben Sie in letzter Zeit einige Pull-Requests von @meteorcloudy in dieser Richtung gesehen (wie #4449), und unser letztendlicher Plan ist die vollständige Unterstützung für die Erstellung von TensorFlow mit Bazel unter Windows.
  2. Ändern der TensorFlow-Laufzeit zum Erstellen mit dem Visual C++ 2015-Compiler. Ich habe daran gearbeitet, und der Unterschied zwischen HEAD und meinem Arbeitszweig wird jeden Tag kleiner. Im Moment verwende ich CMake, um TensorFlow mit Visual Studio/MSBuild zu erstellen, aber ich plane, zu Bazel zu wechseln, wenn die BUILD -Dateien plattformübergreifend funktionieren.

Wir erwarten, bald eine Ankündigung mit einem binären PIP-Paket und Anweisungen zum Erstellen von TensorFlow unter Windows zu machen. In der Zwischenzeit werden wir diese Ausgabe aktualisieren, wenn wir Neuigkeiten zu teilen haben.


Beantwortung der spezifischen Fragen von @kestrelm :

  1. Ich verwende derzeit CMake, um eine VS-Lösung mit mehreren Projekten zu generieren, und wir werden dies als Teil von Punkt (2) oben zusammenführen.
  2. Zumindest können wir eine Python-Erweiterungs-DLL generieren, die die Laufzeit und alle Kernel enthält (das Äquivalent von tensorflow/python/_pywrap_tensorflow.so ), und Anweisungen zum Erstellen einer statisch verknüpften C++-Binärdatei (das Äquivalent von tensorflow/cc/tutorials/example_trainer.cc ).
  3. Wir können leicht eine Version der Laufzeitumgebung mit diesen Funktionen erstellen (so etwas wie die Android-Teilmenge von inferenzbezogenen Kerneln in einer DLL hinter der C-API), obwohl sie wahrscheinlich nicht Teil der ursprünglichen Version sein wird. Es wird jedoch möglich sein, die Build-Dateien zu modifizieren, um ein Ziel mit diesen Eigenschaften zu erstellen, und ich helfe gerne jedem, der dies versucht.

Tolle Arbeit, @mrry!

Wir erwarten, bald eine Ankündigung mit einem binären PIP-Paket und Anweisungen zum Erstellen von TensorFlow unter Windows zu machen

Können Sie ungefähr abschätzen, wann diese Ankündigung erfolgen wird? Ich kann es kaum erwarten!

@mrry : Derek, solides Update. Haben Sie eine binäre GPU-Version (BETA), bevor sich der Rest des Makefile-/Compiler-Frameworks verfestigt? Zumindest könnten die Leute es mit der Python-API versuchen ...

Liebe Gurus:

Ich habe versucht, Tensorflow aus dem Quellcode unter Windows 10 zu erstellen. Es wird berichtet, dass Bazel bereits unter Windows unterstützt wird, obwohl es möglicherweise nicht stabil ist. Trotzdem habe ich einen funktionierenden bekommen.
Als ich jedoch versuchte, Tensorflow zu erstellen, gab es zwei Probleme: Erstens zeigt es an, dass „bazel clean --expunge_async“ mit einem Berechtigungsproblem fehlgeschlagen ist. Ich wette, es ist nicht so schlimm. Das nächste Problem ist ein wenig lebenswichtig, da es den Build blockiert. es berichtet:

...
INFO: 1 Ziel gefunden...
INFO: Erläuterung der Rebuilds in 'Logfile' schreiben
FEHLER: fehlende Eingabedatei ‚@local_config_cuda// cuda:lib64/libcublas.so ‘.
FEHLER: C:/tensorflow/tensorflow/tools/pip_package/ BUILD:23 :1: //tensorflow/tools/pip_ package:build_pip_package : fehlende Eingabedatei '@local_config_cuda// cuda:lib64/libcublas.so '.
Ziel //tensorflow/tools/pip_ Paket:build_pip_package konnte nicht erstellt werden
FEHLER: C:/tensorflow/tensorflow/tools/pip_package/ BUILD:23 :1 1 Eingabedatei(en) existieren nicht.
INFO: Verstrichene Zeit: 34,644 s, kritischer Pfad: 1,52 s

Eigentlich habe ich während des Konfigurationsprozesses die GPU-Unterstützung absichtlich deaktiviert, warum also versucht es, dynamische Bibliotheken im Zusammenhang mit CUDA zu laden?

Da ich die GPU-Unterstützung deaktiviere, werden die Stub-Bibliotheken korrekt mit der Größe Null und mit der Dateierweiterung DLL erstellt. Wie in der Fehlermeldung weiß ich jedoch nicht, woher die Anforderung zum Laden von CUDA-bezogenen Bibliotheken stammt. Ich habe mehrere Dateien überprüft, aber immer noch keine Ahnung. Inzwischen denke ich auch, dass die Datei schlecht geschrieben ist, da sie nach DLL-Dateien statt nach SO-Dateien suchen sollte. Allerdings habe ich immer noch keine Ahnung.

Hat jemand eine Idee zu diesem Problem? Vielen Dank.

Wie Sie vielleicht bei der Zusammenführung von PR Nr. 4778 gesehen haben, haben wir jetzt vorläufige Unterstützung für das Erstellen von TensorFlow unter Windows mit CMake. Es unterstützt die Erstellung einer Nur-CPU-Version von TensorFlow zur Verwendung im C++-Beispiel-Trainerprogramm und eines PIP-Pakets für die Verwendung in Python. Weitere Details und Anweisungen zum Erstellen von TensorFlow aus der Quelle unter Windows finden Sie in der CMake-Readme .

Dies ist Code in Alpha-Qualität, und wir gehen davon aus, dass es in dieser ersten Version Fehler geben wird. Wenn Sie einen finden, melden Sie bitte ein neues GitHub-Problem für das spezifische Problem.

Unser Fokus verlagert sich nun auf die GPU-Unterstützung für TensorFlow unter Windows und den Übergang zu einem gemeinsamen Bazel-basierten Build für Windows und Linux. Wenn Sie weitere Funktionsanfragen haben, melden Sie bitte ein neues GitHub-Problem.

Ich habe dieses vorgefertigte Projekt https://github.com/shishaochen/TensorFlow-0.8-Win verwendet, aber es unterstützt keine GPU.

@mrry Hallo, Derek, danke für deinen Beitrag zu TensorFlow.
@cesardelgadof Hallo, Cesar, danke für deine Informationen.

Ich denke jedoch, dass das bisherige Hindernis, das den Build von TensorFlow auf der Windows-Plattform behindert, die Nichtverfügbarkeit von Bazel unter Windows ist. Seitdem ist es verfügbar, obwohl es möglicherweise nicht stabil ist, also sollten wir meiner Meinung nach besser versuchen, das Problem zu lösen, wenn wir TensorFlow mit Bazel erstellen.

Ich persönlich denke, dass die Leute bei Google, wenn sie den Plan haben, native Builds unter Windows zu unterstützen, wahrscheinlich Bazel wählen werden. Und sobald die offizielle Lösung verfügbar ist, werden die Leute wohl von cmake zu bazel wechseln. Also, wenn es so einen Tag gibt, warum arbeiten wir dann zusammen, damit der Tag früher kommt?

Trotzdem werde ich die cmake-Version ausprobieren, und hoffentlich wird jemand anderes auch das Bazel-Build-System ausprobieren. Wahrscheinlich können wir herausfinden, woher der böse Fehler kommt, und die schlecht geschriebene Konfigurationsdatei lokalisieren.

Danke für euch alle.

@mrry Danke für den großen Beitrag! Ich habe versucht, Ihre Anweisungen zu befolgen. Alle scheinen einwandfrei zu funktionieren (für etwa 45 Minuten), bis es fehlschlug mit:

Das Ziel „BeforeGenerateProjectPriFile“, das in einem BeforeTargets-Attribut unter „C:\Program Files (x86)\MSBuild\Microsoft\NuGet\Microsoft.NuGet.targets (186,61)“ aufgeführt ist, ist im Projekt nicht vorhanden und wird ignoriert.
Bauprojekt „H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj“ abgeschlossen (Standardziele) – FEHLGESCHLAGEN.

"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_python_build_pip_package.vcxproj" (Standardziel) (1) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\pywrap_tensorflow.vcxproj" (Standardziel) (3) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_cpu.vcxproj" (Standardziel) (4) ->
"H:\PycharmProjects\tensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj" (Standardziel) (5) ->
(CustomBuild-Ziel) ->
C:\Programme (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): Fehler MSB6006: "cmd.exe" wurde mit Code 1 beendet. [H:\PycharmProjects \T
ensorflow\tensorflow\contrib\cmake\build\tf_core_framework.vcxproj]

30 Warning(s)
1 Error(s)

@laudney Danke, dass du es versucht hast, und es tut mir leid zu sehen, dass du einen Fehler bekommst! Da diese Ausgabe viele Abonnenten hat, habe ich Ausgabe Nr. 4798 erstellt, um die Lösung für dieses Problem zu verfolgen, also lassen Sie uns die Diskussion dort fortsetzen.

@mingyr Wir hoffen, dass TensorFlow so bald wie möglich auf Windows mit Bazel aufbaut. @meteorcloudy hat hervorragende Arbeit geleistet, um dies zu erreichen, und er hat gerade PR #4796 gesendet, das es Bazel ermöglicht, //tensorflow/cc:tutorials_example_trainer unter Windows zu erstellen. Wir werden versuchen, das bald zusammenzuführen.

@mrry Danke für #4798 , es baut jetzt ok, hat auch python whl install getestet und bisher keine Probleme gefunden.

Ich hoffe, bald Tensorflow in Conda zu sehen.

Verwenden Sie Tensorflow in virtualisierten Umgebungen, da Docker/VirtualBox eine sehr schlechte Lösung ist. Tensorflow sollte nativ unter Windows laufen. (Und da das meiste in Python codiert ist, sollte es kein Problem sein, eine Distribution für Windows zu erstellen.)

Hallo allerseits! Wie von @mrry erwähnt, arbeite ich an TensorFlow Windows Build mit Bazel. Mit der Zusammenführung von PR #4796 und PR #4874 baut der C++-Beispieltrainer jetzt auf Windows mit Bazel 0.3.2 auf!

Hier ist eine kurze Anleitung zum Erstellen von TF mit Bazel unter Windows:

  • Bazel unter Windows installieren ( Installationsanleitung )
  • Richten Sie die Umgebung ein, die Bazel zum Erstellen von C++ mit MSVC benötigt
  • Klonen Sie das TF-Repository, führen Sie ./configure in MSYS aus
  • Führen Sie bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures

Der Einfachheit halber können Sie die Build-Optionen in ~/.bazelrc , meine sieht so aus:

build -c opt
build --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc
build --copt="/w"                  # Suppress some warning messages
build --experimental_ui            # Enable a nice UI 

Ein bekanntes Problem ist, dass das MSVC- Wrapper-Skript von Bazel Python3 in Bazel 0.3.2 nicht unterstützt, aber es wurde bereits unter https://github.com/bazelbuild/bazel/commit/ce5c33dd7e96aff0cf1eb993edd41a5fe8c423f2 behoben. Sie können es lösen, indem Sie BAZEL_PYTHON auf eine Python 2.7-Binärdatei setzen oder Bazel aus HEAD erstellen.

Das Erstellen des C++-Beispieltrainers mit Bazel dauert auf meinem Computer (Windows 7, CPU 2,9 GHz, RAM 64 GB) etwa 20 Minuten, ein inkrementeller Build nach dem Ändern einer Quelldatei (z. B. array_ops.cc ) dauert etwa 1 Minute.

Ich mache auch einige Fortschritte beim Erstellen des Python-PIP-Pakets unter Windows mit Bazel, ich werde so bald wie möglich eine PR senden.

Bitte versuchen Sie, TensorFlow mit Bazel unter Windows zu erstellen, und sagen Sie uns, was wir verbessern könnten!

@meteorcloudy , Hallo Yun:
Der C++-Beispieltrainer muss von der vorgefertigten Bazel-Binärdatei erstellt werden, die unter Windows installiert ist, oder kann ich mit der neuesten Git-Version von Bazel synchronisieren und das benutzerdefinierte Bazel verwenden?

Eigentlich wähle ich den zweiten Weg, nutze das Kunden-Build-Bazel, jedoch beschwert es sich wie folgt:

FEHLER: C:/tensorflow/tensorflow/core/ BUILD:108 :1: Ausgabe „tensorflow/core/example/example.pb.h“ wurde nicht erstellt.
FEHLER: C:/tensorflow/tensorflow/core/ BUILD:108 :1: Ausgabe „tensorflow/core/exampl e/example_parser_configuration.pb.h“ wurde nicht erstellt.
FEHLER: C:/tensorflow/tensorflow/core/ BUILD:108 :1: Ausgabe „tensorflow/core/example/example.pb.h“ wurde nicht erstellt.
FEHLER: C:/tensorflow/tensorflow/core/ BUILD:108 :1: Ausgabe „tensorflow/core/exampl e/feature.pb.h“ wurde nicht erstellt.
......

Verfahren für den Build, den ich genommen habe:
$ cd c:/tensorflow
$ export JAVA_HOME="$(ls -d C:/Program\ Files/Java/jdk* | sort | tail -n 1)"
$ export BAZEL_SH=c:/tools/msys64/usr/bin/bash.exe
$ export BAZEL_VS="C:/Programmdateien (x86)/Microsoft Visual Studio 14.0"
$ export BAZEL_PYTHON=C:/Python27/python.exe
$ export PATH=$PATH:/c/Python27:/c/Python27/Scripts:/c/tools/swigwin-3.0.10:/c/bazel/output

./konfigurieren

bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures

Irgendein Vorschlag?

Danke.

@meteorcloudy Hallo Yun,

Ich habe ein ähnliches Verfahren befolgt, erhalte jedoch die folgende Fehlermeldung:
cd C:/tools/msys64/var/tmp/Bazel/V1uFCi$H/execroot/tensorflow
bazel-out/host/bin/external/protobuf/protoc.exe --cpp_out=bazel-out/vc_14_0_x64-opt/genfiles/ --plugin=protoc-gen-grpc=bazel-out/host/bin/external/grpc /grpc_cpp_plugin.exe --grpc_out=bazel-out/vc_14_0_x64-opt/genfiles/ -I. -Iexternal/protobuf/src -Ibazel-out/vc_14_0_x64-opt/genfiles/external/protobuf/src tensorflow/core/debug/debug_service.proto: com.google.devtools.build.lib.shell.BadExitStatusException: Prozess mit Status beendet 1.
azel-out/vc_14_0_x64-opt/genfiles/external/protobuf/src: Warnung: Verzeichnis existiert nicht.

Ich habe die Ordner überprüft und es gibt kein src-Verzeichnis in protobuf. Außerdem gibt es keinen grpc-Ordner in bazel_out/host/bin/external/ (also keine grpc_cpp_plugin.exe-Datei).

Auf diesen Fehler folgt eine Reihe von Fehlern, dass Dateien in Tensorflow/Core nicht erstellt werden

Irgendeine Idee, wie man es repariert?

Danke

@mingyr @karthiek Danke, dass du versucht hast, TF mit Bazel zu bauen!
Leider schlägt der TF-Build laut http://ci.bazel.io/job/TensorFlow/ sogar unter Linux mit Bazel bei HEAD mit einem ähnlichen von Ihnen angegebenen Fehler fehl. Wir beheben es in der Zwischenzeit, können Sie es erneut mit Bazel 0.3.2 versuchen?

@meteorcloudy Hallo Yun:

Was meinst du mit "können Sie es noch einmal mit Bazel 0.3.2 versuchen"?

Sie meinen die offizielle vorgefertigte Windows-Binärdatei, oder wir können mit der neuesten Version von Bazel synchronisieren und meinen Build verwenden?

Eigentlich synchronisiere ich bereits mit der neuesten Version von Bazel und verwende meinen Build. Wenn Sie angeben, dass ich die offizielle vorgefertigte Binärdatei ausprobieren sollte, um zu sehen, ob das Problem noch ansteht, lassen Sie es mich bitte wissen.

BR

@mingyr Ja, ich meine die "offizielle vorgefertigte Binärdatei". Ich habe den gleichen Fehler nach der Synchronisierung mit HEAD.
Siehe https://github.com/bazelbuild/bazel/issues/1929

@meteorcloudy Hallo Yun

Danke für den Vorschlag. Ich habe versucht, die vorkompilierte Binärdatei 0.3.2 zu verwenden, und konnte die Datei tutorilas_example_trainer.exe kompilieren und generieren.

@karthiek Schön , dass es dir gelingt! Wie lange hat es gedauert? Ist es schneller als der CMake-Build?

@meteorcloudy Es dauerte etwa 15 Minuten (Intel(R) Core(TM) i7-6700 CPU @ 3,40 GHz). Es war erst gestern, dass ich die Notwendigkeit hatte, Tensor Flow auf Windows zu bauen. Also habe ich direkt die letzte von Ihnen vorgeschlagene Methode ausprobiert. Ich habe nicht versucht, es mit CMake zu erstellen.

Hallo, ich habe versucht, dem @meteorcloudy- Ansatz zu folgen, bin aber mit den folgenden Fehlern gelandet. Könnte jemand helfen?

bazel build -c opt --cpu=x64_windows_msvc --host_cpu=x64_windows_msvc //tensorflow/cc:tutorials_example_trainer --verbose_failures
INFO: Analysiertes Ziel //tensorflow/cc:tutorials_example_trainer.
INFO: 1 Ziel gefunden...
FEHLER: C:/Programmierung/tensorflow/tensorflow/core/ BUILD:1064 :1: Ausführen von genrule //tensorflow/ core:version_info_gen fehlgeschlagen: bash.exe fehlgeschlagen: Fehler beim Ausführen des Befehls
cd C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/execroot/tensorflow
SET PATH=C:\tools\msys64\usr\local\bin;C:\tools\msys64\usr\bin;C:\tools\msys64\usr\bin;C:\tools\msys64\opt\bin;C :\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\tools\msys64\usr\bin\site_perl;C:\ tools\msys64\usr\bin\vendor_perl;C:\tools\msys64\usr\bin\core_perl;C:\Program Files\Google;C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64; C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\Scripts;C:\tools\swigwin-3.0.10;C:\Program Files\java\jdk1.8.0_102\bin
C:/tools/msys64/usr/bin/bash.exe -c source external/bazel_tools/tools/genrule/genrule-setup.sh; tensorflow/tools/git/gen_git_source.py --generate tensorflow/tools/git/gen/spec.json tensorflow/tools/git/gen/head tensorflow/tools/git/gen/branch_ref "bazel-out/vc_14_0_x64-opt/ genfiles/tensorflow/core/util/version_info.cc": com.google.devtools.build.lib.shell.BadExitStatusException: Prozess wurde mit Status 1 beendet
Traceback (letzter Aufruf zuletzt):
Datei "tensorflow/tools/git/gen_git_source.py", Zeile 258, in
generieren (args.generieren)
Datei „tensorflow/tools/git/gen_git_source.py“, Zeile 210, in generate
git_version = get_git_version(data["Pfad"])
Datei „tensorflow/tools/git/gen_git_source.py“, Zeile 151, in get_git_version
"--long", "--dirty", "--tags"]).strip()
Datei "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", Zeile 566, in check_output
process = Popen(stdout=PIPE, _popenargs, *_kwargs)
Datei "C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py", Zeile 710, in init
Fehler lesen, Fehler schreiben)
Datei „C:\WinPython-64bit-2.7.10.2\python-2.7.10.amd64\lib\subprocess.py“, Zeile 958, in _execute_child
Startinfo)
WindowsError: [Fehler 2] Das System kann die angegebene Datei nicht finden
FEHLER: C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/jpeg_archive/ BUILD:74 :1: deklarierte Ausgabe „external/jpeg_archive/jconfig.h“ wurde nicht von genrule erstellt. Dies liegt wahrscheinlich daran, dass die Genrule diese Ausgabe nicht erstellt hat oder dass die Ausgabe ein Verzeichnis war und die Genrule remote ausgeführt wurde (beachten Sie, dass nur der Inhalt deklarierter Dateiausgaben von Genrules kopiert wird, die remote ausgeführt werden).
FEHLER: C:/tools/msys64/var/tmp/Bazel/s5nfxnhX/external/gif_archive/ BUILD:35 :1: deklarierte Ausgabe „external/gif_archive/windows/unistd.h“ wurde nicht von genrule erstellt. Dies liegt wahrscheinlich daran, dass die Genrule diese Ausgabe nicht erstellt hat oder dass die Ausgabe ein Verzeichnis war und die Genrule remote ausgeführt wurde (beachten Sie, dass nur der Inhalt deklarierter Dateiausgaben von Genrules kopiert wird, die remote ausgeführt werden).
Ziel //tensorflow/cc:tutorials_example_trainer konnte nicht erstellt werden
INFO: Verstrichene Zeit: 4,967 s, kritischer Pfad: 0,96 s
FEHLGESCHLAGEN: Build wurde NICHT erfolgreich abgeschlossen

@bssrdf Ihre Symptome scheinen https://github.com/bazelbuild/bazel/issues/1463 ähnlich zu sein.
Es ist ein bekanntes Problem von Bazel unter Windows, das wir beschädigen, wenn sich Ihr Arbeitsbereich nicht auf dem Laufwerk C: befindet.

Wenn dies der Fall ist, besteht die Problemumgehung darin, eine Junction zu erstellen. Wenn sich Ihr Tensorflow-Checkout in d:\src\tensorflow befindet, sollte Folgendes funktionieren

C:\> mklink /j d_src d:\src
C:\> cd c:\d_src\tensorflow
C:\D_SRC\TENSORFLOW> bazel build ...

Siehe https://github.com/bazelbuild/bazel/issues/1463#issuecomment -251967323
Wir entschuldigen uns für die Unannehmlichkeiten, wir beheben dies so schnell wie möglich.

@bssrdf hmm auf den zweiten Blick ist es das vielleicht nicht - könnte es sein, dass du git nicht in PATH hast?

@meteorcloudy Hallo Yun:

Ich bestätige auch, dass es kein Problem gibt, den C++-Beispieltrainer mit der vorkompilierten Bazel-Binärversion 0.3.2 zu kompilieren.

Mein Notebook ist alt und läuft inzwischen anderen Aufgaben, daher ist die Kompilierzeit aus Benchmarking-Sicht Unsinn.

Vielen Dank für Ihre Arbeit und schauen Sie weiter, um das Python-PIP-Paket unter Windows zu kompilieren

BR

@mingyr Das ist großartig!
Aber nur eine Benachrichtigung für alle, der Beispieltrainer ist bei TF HEAD nicht baubar, da mein Fix bei be3bc472a52571a83f048479d6a4fa528b5a495e aus irgendeinem Grund rückgängig gemacht wurde.
Die gute Nachricht ist, dass das Erstellen eines Python-PIP-Pakets mit Bazel nah ist! Siehe PR-Nr. 4942

@dslomov danke für die Antwort. Ich musste das Problem mit dem bazel non-c: Drive Workspace lösen, wie Sie vorgeschlagen haben. Ich habe git für Windows installiert und git ist im PATH von MSYS2 zu sehen.

Ich habe gerade den Bazel-Build-Befehl neu gestartet und er funktioniert jetzt wie ein Wunder. Ich weiß nicht, was gestern passiert ist. Wie auch immer, dies ist nur eine weitere Erfolgsbestätigung für Windows 10 Home, VS 2015 Community Edition, vorgefertigtes Bazel 0.3.2 und Winpython-2.7.10.2

Vielen Dank für Yuns Arbeit.

@meteorcloudy , ist es möglich, die GPU-Version nach dem Verfahren zu erstellen (natürlich mit Änderungen im Bazel-Build)?

@mrry Hallo Derek, danke für deinen Beitrag, aber ich habe dieses Problem mit Tensorboard, es funktioniert nicht:

C:\Users\Cesar\Documents\Notebooks\DeepLearning>tensorboard --logdir='./my_graph/'
Traceback (most recent call last):
  File "c:\program files\anaconda3\lib\runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files\anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Anaconda3\Scripts\tensorboard.exe\__main__.py", line 5, in <module>
ImportError: No module named 'tensorflow.tensorboard'

@bssrdf Wahrscheinlich nicht, da der Code GPU unter Windows noch nicht unterstützt. @mrry hat die ganze Arbeit geleistet, um den TF-Code mit MSVC zu kompilieren, und er hat sich darauf konzentriert, die GPU-Unterstützung zu reparieren.

Haben wir eine fundierte Vermutung zur ETA für den Produktionseinsatz?

Da es für Leute hier relevant erscheint, die Bazel unter Windows verwenden; Ich habe ein Chocolatey-Paket erstellt, um die Installation zu vereinfachen. https://chocolatey.org/packages/bazel. Bitte probieren Sie es aus und wenn es irgendwelche Probleme gibt (es _ist_ neu), twittern Sie oder melden Sie ein Problem bei bazelbuild/bazel.

Die GPU-Unterstützung ist dank @mrry und @guschmue ausgefallen.
Die Anweisungen werden in der Readme-Datei aktualisiert.

Hat jemand unter Windows kompilieren und ein PIP-Paket erstellen können? Danke. :)

Master (66f979714c9a8582059f383ec1505d13c9e8c523) sollte für Windows-CPU und -GPU in Ordnung sein. Anweisungen finden Sie in tensorflow/contrib/cmake/README.md (verwenden Sie vorerst cmake 3.6).

Tensorboard ist nicht enthalten?, weil es nicht funktioniert:

C:\Users\Cesar\Documents\Notebooks\DeepLearning>tensorboard --logdir='./my_graph/'
Traceback (most recent call last):
  File "c:\program files\anaconda3\lib\runpy.py", line 184, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files\anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Anaconda3\Scripts\tensorboard.exe\__main__.py", line 5, in <module>
ImportError: No module named 'tensorflow.tensorboard'

Einige Python-Module fehlen im Pip: Beispiele, einige von contrib und tensorboard, werden beim Erstellen mit cmake nicht in das Rad kopiert.
Lassen Sie mich prüfen, ob es nur darum geht, es mit einer Option zu tf_python.cmake hinzuzufügen oder ob es Komplikationen gibt.

Ich habe Tensorflow für Python gemäß den Anweisungen kompiliert, aber ich erhalte einen Absturz, der von cudnn stammt, wenn ich tf.nn.conv2d auf meiner GPU verwende.

Beispielcode, der den Absturz verursacht, ist

import tensorflow as tf
import numpy as np
sess = tf.InteractiveSession()
image = tf.placeholder(tf.float32, shape=[None, 10, 10, 1], name='image')
kernel = tf.truncated_normal([5, 5, 1, 1], stddev=0.1)
conv = tf.nn.conv2d(image, kernel, strides=[1, 1, 1, 1], padding='SAME')
sess.run(tf.initialize_all_variables())
sess.run(conv, feed_dict={image: [np.zeros((10, 10, 1))]})

Dies führt zum Absturz des Python-Prozesses und gibt diese Ausgabe in der Jupyter-Konsole aus

WARNING:root:kernel 800a0f42-d62b-4128-a61a-ba64ee725ca8 restarted
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library cublas64_80.dll locally
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library cudnn64_5.dll locally
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library cufft64_80.dll locally
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library nvcuda.dll locally
I d:\tensorflow\tensorflow\tensorflow\stream_executor\dso_loader.cc:125] successfully opened CUDA library curand64_80.dll locally
I d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:944] Found device 0 with properties:
name: GeForce GTX 970
major: 5 minor: 2 memoryClockRate (GHz) 1.3165
pciBusID 0000:01:00.0
Total memory: 4.00GiB
Free memory: 3.31GiB
I d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:965] DMA: 0
I d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] 0:   Y
I d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:1034] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0)
E d:\tensorflow\tensorflow\tensorflow\core\common_runtime\gpu\gpu_device.cc:662] Could not identify NUMA node of /job:localhost/replica:0/task:0/gpu:0, defaulting to 0.  Your kernel may not have been built with NUMA support.
E d:\tensorflow\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED
E d:\tensorflow\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:392] error retrieving driver version: Permission denied: could not open driver version path for reading: /proc/driver/nvidia/version
E d:\tensorflow\tensorflow\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
F d:\tensorflow\tensorflow\tensorflow\core\kernels\conv_ops.cc:532] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

Während ich mit den verschiedenen Versionen von cudnn64_5.dll herumspielte, konnte ich den Code einmal zum Laufen bringen und bestätigte, dass die GPU verwendet wurde, aber selbst nachdem ich alle Versionen von cudnn ausprobiert hatte, die ich heruntergeladen hatte, hatte ich kein Glück, dass es ein zweites Mal funktionierte.

habe dein Skript ausprobiert und es funktioniert bei mir. Wir haben nur mit cudnn5.1 getestet, alles ältere weiß ich nicht.
Ich würde cudnn5.1 sauber installieren, damit bauen und sicherstellen, dass die cudnn64_5.dll in PATH 5.1 ist.
Eine andere Sache, die Sie überprüfen sollten: Ihr freier Speicher ist etwas geringer als ich erwartet hätte - läuft vielleicht ein anderer Python, der das Gerät geöffnet hat?

Ich habe einen sauberen Neuaufbau mit einem frisch heruntergeladenen cudnn und auf dem PATH ( cudnn-8.0-windows10-x64-v5.1 ) versucht, aber keine Zigarre. cudnn64_5.dll von diesem Download ist 'Dateiversion': 6.14.11.8000 und hat 'Dateibeschreibung': NVIDIA CUDA 80.0.29 CUDNN Library .

cublas64_80.dll aus dem CUDA 8.0-Pfad hat dieselbe 'Dateiversion', aber 'Dateibeschreibung': NVIDIA CUDA 80.0.45 BLAS Library

cufft64_80.dll und curand64_80.dll haben auch übereinstimmende 'Dateiversionen', sind aber 8.0.44 in 'Dateibeschreibung'

Die GPU-Treiber, die ich installiert habe, sind Version 369.30 von den neuesten CUDA-Treibern und nvcuda.dll in System32 hat 'Dateiversion': 6.14.13.6930 und hat 'Dateibeschreibung': NVIDIA CUDA 80.0.44 driver .

Ich glaube, der geringe Gerätespeicher liegt nur daran, dass ich einen 970 habe, der nur 3,5 GB nutzbaren Speicher hat und CUDA die letzten 0,5 GB nicht gerne verwendet.

Ich habe die gleiche cudnn-Version und sie funktioniert gut für mich. Es gibt eine Reihe von Conv-Python-Tests im tf-Baum und sie bestehen alle. Ich benutze meistens einen 970 zum Testen. Ihr Protokoll war spezifisch, dass es Probleme beim Initialisieren von cudnn gab. Lassen Sie mich einen Blick auf den Init-Code werfen.

OK, das Problem scheint ein Treiberproblem zu sein. Ich kann cudnn und Convolutions jedes Mal erfolgreich verwenden, wenn ich den Videotreiber neu starte (unter Verwendung des Geräte-Managers deaktivieren und dann aktivieren). Sobald ich es jedoch in einem Prozess verwendet habe, können alle zukünftigen Verwendungen nicht initialisiert werden.

Außerdem denke ich, dass andere Prozesse treiberbedingte Abstürze haben, sobald cudnn initialisiert wurde.


Update: Ich habe meinen Grafiktreiber deinstalliert und neu installiert und jetzt kann ich einen Prozess (Jupyter-Kernel) mit cudnn korrekt arbeiten lassen, aber bis ich diesen Kernel schließe, wird jeder Versuch, cudnn in anderen Kerneln zu verwenden, auf den gleichen Absturz stoßen. Wenn ich den funktionierenden Kernel neu starte, kann ich den Code in einem anderen Kernel ausführen, ohne den Treiber neu laden zu müssen.

Es hat für mich kompiliert, aber ich musste shell=True in der Zeile 150 der Datei gen_git_source.py hinzufügen. Andernfalls würde ich den gleichen Fehler erhalten, wie in gezeigt:
http://stackoverflow.com/questions/24306205/file-not-found-error-when-launching-a-subprocess

@synap5e Wenn Sie dies in einer normalen tf.Session() ausführen, funktioniert eine zweite Instanz nicht, da tf den gesamten Speicher auf der GPU verwaltet. Sie können die Konfiguration für Session() wie folgt ändern:
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0,4
mit tf.Session(config=config) als Sitzung:
...
Damit kann ich 2 Skripte in einer Schleife ausführen, die cudnn treffen. Unter Linux ist das genauso.
Aber es stürzt unter Windows anders ab - unter Linux erhält es CUDA_ERROR_OUT_OF_MEMORY, unter Windows erhält es CUDNN_STATUS_NOT_INITIALIZED. Werde mir das mal anschauen.

Ah, das Problem war also, dass mein System zu viel Videospeicher verbrauchte, noch bevor Tensorflow initialisiert wurde. Ich denke, das Treibermaterial hat nur den verwendeten Gerätespeicher heruntergefahren, damit Tensorflow ordnungsgemäß initialisiert werden kann. Danke!

Leute, ist es möglich, ohne MSVS auf Windows zu bauen? Windows 10 SDK soll den C++-Compiler enthalten, würde das für die Aufgabe nicht ausreichen?

@zandaqo Sie benötigen nur einen eigenständigen MSVC-Compiler mit Windows 10 SDK und CMake, sodass Sie nicht das gesamte Visual Studio installieren müssen. Windows 10 SDK enthält DLL, statische Bibliotheken, Header-Dateien und Quellcodes für die Bibliotheken und einige nützliche Tools, aber keinen Compiler.

Hallo!

Ich bin sowohl bei Python als auch bei Tensorflow neu, aber ich habe in der Vergangenheit einige MNIST-Sachen gemacht. Ich habe die Anweisungen auf tensorflow/contrib/cmake/README.md befolgt, und es hat gut funktioniert, die GPU scheint auch gut zu funktionieren. Tensorflow unter Windows scheint erwartungsgemäß an einigen Stellen zu brechen, und ich möchte nur überprüfen, ob mein Verständnis des Bruchs richtig ist.

Ich habe versucht, https://www.tensorflow.org/versions/r0.11/tutorials/mnist/beginners/index.html zu folgen, und es funktioniert nicht, da dieser Importpfad (tensorflow.examples.tutorials.mnist) dies nicht tut existieren. Das liegt letztendlich daran, dass tf.contrib nicht im Pip-Paket enthalten ist, richtig?

Nur aus Neugier habe ich etwas scheinbar ziemlich Schreckliches getan: Ich habe den Inhalt des tensorflow-Repos über den lib-Speicherort unter site-packages\tensorflow kopiert, von dem ich erwartet hatte, dass er viele Dinge kaputt machen würde. So bricht es:

  File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\contrib\framework\python\ops\variables.py", line 23, in <module>
    from tensorflow.contrib.framework.python.ops import gen_variable_ops
ImportError: cannot import name 'gen_variable_ops'

Ich konnte die Definition von gen_variable_ops nirgendwo finden, aber die Dokumentation besagt, dass tf.load_op_library() derzeit nicht implementiert ist. Also wird gen_variable_ops woanders implementiert, was mit tf.load_op_library() geladen werden muss. Das Fehlen von tf.load_op_library verursacht also das Problem, richtig?

Ich habe es geschafft, das Pip-Paket erfolgreich nach dem cmake-Pfad zu erstellen und es mit pip install tensorflow-0.11.0rc1_cmake_experimental-py3-none-any.whl zu installieren, was eine erfolgreiche Installation gemeldet hat. Wenn ich jedoch versuche, Tensorflow zu importieren, erhalte ich die folgenden Fehler:

>>> import tensorflow as tf
Traceback (most recent call last):
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 18, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 666, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 577, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 906, in create_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\__init__.py", line 54, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 21, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 20, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow')
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_pywrap_tensorflow'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\__init__.py", line 23, in <module>
    from tensorflow.python import *
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\__init__.py", line 60, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 18, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 666, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 577, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 906, in create_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\__init__.py", line 54, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 21, in <module>
    _pywrap_tensorflow = swig_import_helper()
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 20, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow')
  File "C:\Users\Tester\AppData\Local\Programs\Python\Python35\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named '_pywrap_tensorflow'


Error importing tensorflow.  Unless you are using bazel,
you should not try to import tensorflow from its source directory;
please exit the tensorflow source tree, and relaunch your python interpreter
from there.

Habe ich hier eine Abhängigkeit übersehen oder stimmte etwas mit dem Build/der Installation nicht?

@zandaqo , ich habe dieses Problem, als ich Tensorflow zum ersten Mal unter Windows ausführe. Sie müssen nur die Beispiele kompilieren und den Ordner mit den kompilierten Beispielen zu Ihrem Pfad hinzufügen. Wenn Sie die Beispielcodes kompilieren, werden auch einige DLLs kompiliert, die für Tensorflow benötigt werden.

@ErivaldoJunior Wenn Sie die Beispiele kompilieren, meinen Sie Folgendes: MSBuild /p:Configuration=Release tf_tutorials_example_trainer.vcxproj ? Ich habe das getan, bevor ich das Pip-Paket kompiliert habe. Es wird zu .\Release kompiliert, ist das der Ordner, der dem Pfad hinzugefügt werden soll? Ich habe gerade versucht, es hinzuzufügen, aber bisher kein Glück.

Ich sehe Dateien mit dem Namen pywrap_tensor , die in den Fehlern in diesem .\Release -Ordner erwähnt werden. Vielleicht hilft es Python, sie irgendwo manuell zu kopieren, um sie zu sehen. Bin mir aber nicht sicher wo.

@zandaqo , das ist richtig. Ich habe diesen Release-Ordner einfach zu meinem Windows-Pfad hinzugefügt und es hat funktioniert. Ich habe jedoch getestet, indem ich python my_tensorflow_script.py aus einem CMD-Fenster gestartet habe. Ich weiß nicht, ob es funktioniert, wenn Sie eine Art IDE oder iPython verwenden.

@ErivaldoJunior Danke, Sie hatten Recht mit fehlenden DLLs, obwohl sich in meinem Fall herausstellte, dass zlib.dll sowohl im Paket als auch im Ordner .\Release fehlte. Ich habe zlib.dll manuell in den Ordner kopiert, wie es hier vorgeschlagen wurde und der Import funktioniert jetzt.

Es ist mir gelungen, den Tensorflow zu bauen! Aber cmake 3.3.1 verursacht Build-Fehler, 3.6.3 funktioniert gut.

Gut zu wissen! Wir würden uns über eine PR mit einer entsprechenden Mindestversion freuen
-Anweisung in der cmakelist-Datei.

Am Samstag, den 5. November 2016, Takahiro Kubo [email protected]
schrieb:

Es ist mir gelungen, den Tensorflow zu bauen! Aber cmake 3.3.1 verursacht Build-Fehler,
3.6.3 funktioniert gut.


Sie erhalten dies, weil Sie kommentiert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -258649999,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AAjO_Ys4MI03pcc3tCR_BzsqIXFrQTTcks5q7RVRgaJpZM4GexU4
.

@martinwicke wie hier scheint die mindestens bekannte funktionierende Cmake-Version 3.5 zu sein. Sollte ich die Mindestanforderung auf 3.5 ändern und die Readme-Datei für mindestens 3.5 auf 3.6 aktualisieren?

Schön zu sehen, dass TensorFlow jetzt unter Windows mit GPU funktionieren kann. Gibt es Pläne für eine Version, die nicht aus den Quellen installiert werden muss? Und wenn ja, eine ETA dazu? Es wäre großartig, wenn der Setup-Prozess so einfach wäre wie unter Linux. Ich verwende TensorFlow unter Linux ohne Probleme und würde dies gerne unter Windows tun, aber die in der Readme dokumentierten Voraussetzungen und der Setup-Prozess sehen für diese derzeit etwas umständlich aus von uns, die nicht viel Zeit haben ...

Hallo Leute! Mit der Veröffentlichung von Bazel 0.4.0 kann das TensorFlow PIP-Paket jetzt mit Bazel unter Windows erstellt werden.
Dank des Beitrags von @petemounce können Sie Bazel einfach mit choco install bazel --version 0.4.0 installieren.

@gunan hat dafür bereits einen ci-Job eingerichtet: http://ci.tensorflow.org/job/tensorflow-pr-win-bazel/
Grundsätzlich verwenden wir dieses Skript . Mit entsprechender Änderung der Umgebungsvariablen (falls Ihre Installationen von Visual Studio, Python 3 oder msys nicht an den Standardorten sind) können Sie das PIP-Paket auch mit Bazel erstellen!

Update: Ich würde empfehlen, die Befehle im Skript manuell auszuführen, wenn Sie Probleme haben, es direkt auszuführen.

@meteorcloudy Danke fürs Update!
Build with bazel hat bei mir nicht funktioniert. Ich bekomme FEHLER: CreateFile(C:\tmp\Bazel\44EoGNou\install)
Irgendeine Möglichkeit, das zu debuggen? Ich habe lokalisierte Fenster (russisch), vielleicht ist das die Ursache

Vollständiges Protokoll. Als Administrator in PowerShell ausführen:

C:\libs\tensorflow>c:\tools\msys64\usr\bin\bash -l C:\libs\tensorflow/tensorflow/tools/ci_build/windows/cpu/pip/build_tf_windows.sh
+ set -e
++ dirname 'C:\libs\tensorflow/tensorflow/tools/ci_build/windows/cpu/pip/build_tf_windows.sh'
+ script_dir='C:\libs\tensorflow/tensorflow/tools/ci_build/windows/cpu/pip'
+ cd 'C:\libs\tensorflow/'
+ export TMPDIR=C:/tmp
+ TMPDIR=C:/tmp
+ export BAZEL_SH=C:/tools/msys64/usr/bin/bash
+ BAZEL_SH=C:/tools/msys64/usr/bin/bash
+ export 'PYTHON_BIN_PATH=C:\tools\Anaconda3/python'
+ PYTHON_BIN_PATH='C:\tools\Anaconda3/python'
+ export 'BAZEL_PYTHON=C:\tools\Anaconda3/python'
+ BAZEL_PYTHON='C:\tools\Anaconda3/python'
+ export 'BAZEL_VS=C:/Program Files (x86)/Microsoft Visual Studio 14.0'
+ BAZEL_VS='C:/Program Files (x86)/Microsoft Visual Studio 14.0'
+ export 'PATH=/c/tools/bazel:/c/Program Files/Anaconda3:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/'
+ PATH='/c/tools/bazel:/c/Program Files/Anaconda3:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/'
+ bazel clean
Extracting Bazel installation...
ERROR: CreateFile(C:\tmp\Bazel\44EoGNou\install): ▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒.
 (2)
.....................................................................................................................................................................................................................................................................................................................................
INFO: Starting clean (this may take a while). Consider using --expunge_async if the clean takes more than several minutes.
++ bazel info output_base
+ output_base=C:/tmp/Bazel/44EoGNou
+ bazel shutdown
+ rm -rf C:/tmp/Bazel/44EoGNou
rm: невозможно удалить 'C:/tmp/Bazel/44EoGNou/server/jvm.out': Device or resource busy

@KhabarlakKonstantin Das ist ( ERROR: CreateFile(C:\tmp\Bazel\44EoGNou\install) ) bazelbuild/bazel#1744, denke ich. Es passiert nur das erste Mal, nachdem Bazel installiert wurde. Es scheint keine Auswirkungen zu geben.

@KhabarlakKonstantin Wie @petemounce betonte, können Sie diesen Fehler getrost ignorieren. Und Sie können rm -rf C:/tmp/Bazel/44EoGNou auch überspringen, wenn der Fehler Device or resource busy Sie blockiert. Ich denke, es liegt daran, dass versucht wurde, jvm.out zu entfernen, bevor jvm nach dem Aufruf bazel shutdown vollständig heruntergefahren wurde.

@petemounce @meteorcloudy Danke für die Hilfe
Das Problem ist, dass es nicht mit dem Bau beginnt. Ich habe bazel shutdown auskommentiert und es geht jetzt etwas weiter, stürzt aber immer noch ab

INFO: Starting clean (this may take a while). Consider using --expunge_async if the clean takes more than several minutes.
++ bazel info output_base
+ output_base=C:/tmp/Bazel/44EoGNou
+ echo ''
+ ./configure
/c/libs/tensorflow /c/libs/tensorflow
Found possible Python library paths:
  C:\Program Files\Anaconda3\lib\site-packages
  C:\Program Files\Anaconda3
Please input the desired Python library path to use.  Default is [C:\Program Files\Anaconda3\lib\site-packages]
Using python library path: C:\Program Files\Anaconda3\lib\site-packages
Junction created for util\python\python_include <<===>> C:\Program Files\Anaconda3\include
Junction created for util\python\python_lib <<===>> C:\Program Files\Anaconda3\lib\site-packages
Junction created for third_party\py\numpy\numpy_include <<===>> C:\Program Files\Anaconda3\lib\site-packages\numpy\core\include

Hier gibt es keine Ausgabe mehr

@KhabarlakKonstantin Es scheint, dass die OpenCL-Konfiguration nur in ./configure hinzugefügt, aber unter Windows nicht standardmäßig deaktiviert ist, also führen Sie dieses Skript bitte manuell aus oder fügen Sie export TF_NEED_OPENCL=0 vor echo "" | ./configure hinzu

pcloudy@PCLOUDY1-W MSYS ~/workspace/tensorflow
$ ./configure
~/workspace/tensorflow ~/workspace/tensorflow
Please specify the location of python. [Default is /c/Program Files/Anaconda3/python]:
Found possible Python library paths:
  C:\Program Files\Anaconda3\lib\site-packages
  C:\Program Files\Anaconda3
Please input the desired Python library path to use.  Default is [C:\Program Files\Anaconda3\lib\site-packages]

Using python library path: C:\Program Files\Anaconda3\lib\site-packages
Junction created for util\python\python_include <<===>> C:\Program Files\Anaconda3\include
Junction created for util\python\python_lib <<===>> C:\Program Files\Anaconda3\lib\site-packages
Junction created for third_party\py\numpy\numpy_include <<===>> C:\Program Files\Anaconda3\lib\site-packages\numpy\core\include
Do you wish to build TensorFlow with OpenCL support? [y/N] n
No OpenCL support will be enabled for TensorFlow
Configuration finished

Hat noch jemand diese Fehler mit Pragma (ignoriere Pywrap One)?

Bauen mit GPU und allen Spezifikationen gemäß Readme.

@Carmezim , bei mir hat es gut funktioniert. Ich habe keinen dieser Fehler erhalten.

Ich habe hier einen PR, um das zu beheben: https://github.com/tensorflow/tensorflow/pull/5421

@guschmue Schön! Danke für die schnelle Antwort

Nachdem ich _Pragma repariert habe, bekomme ich Folgendes in derselben Datei:

C:/tensorflow/tensorflow/core/kernels/parameterized_truncated_normal_op_gpu.cu.cc(168): error : more than
one operator "/" matches these operands: [C:\tensorflow\tensorflow\contrib\cmake\build\tf_core_gpu_kernels.v
cxproj]

5421 wird dies ebenfalls beheben.

Kann ich mit Bazel mit GPU-Unterstützung bauen?

@ edwin100394 noch keine GPU-Unterstützung unter Windows mit Bazel.
Wir arbeiten noch daran.

Am Montag, 7. November 2016 um 21:33 Uhr, edwin100394 [email protected]
schrieb:

Kann ich mit Bazel mit GPU-Unterstützung bauen?


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/tensorflow/tensorflow/issues/17#issuecomment -259049695,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AHlCOXNRNoMFmnSPfnkTMLsRHcIcl9TXks5q8AmigaJpZM4GexU4
.

@meteorcloudy Das Hinzufügen export TF_NEED_OPENCL=0 hat mir geholfen, ein wenig weiter zu gehen

Jetzt bekomme ich einen anderen Fehler:

ERROR: C:/libs/tensorflow/tensorflow/core/BUILD:1115:1: Executing genrule //tensorflow/core:version_info_gen failed: bash failed: error executing command
  cd C:/tmp/Bazel/44EoGNou/execroot/tensorflow
  SET PATH=C:\tools;C:\tools\Anaconda;C:\tools\msys64\usr\local\bin;C:\tools\msys64\usr\bin;C:\tools\msys64\usr\bin;C:\tools\msys64\opt\bin;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\tools\msys64\usr\bin\site_perl;C:\tools\msys64\usr\bin\vendor_perl;C:\tools\msys64\usr\bin\core_perl
  C:/tools/msys64/usr/bin/bash -c source external/bazel_tools/tools/genrule/genrule-setup.sh; tensorflow/tools/git/gen_git_source.py --generate tensorflow/tools/git/gen/spec.json tensorflow/tools/git/gen/head tensorflow/tools/git/gen/branch_ref "bazel-out/vc_14_0_x64-py3-opt/genfiles/tensorflow/core/util/version_info.cc": com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1
Traceback (most recent call last):
  File "tensorflow/tools/git/gen_git_source.py", line 260, in <module>
    generate(args.generate)
  File "tensorflow/tools/git/gen_git_source.py", line 212, in generate
    git_version = get_git_version(data["path"])
  File "tensorflow/tools/git/gen_git_source.py", line 152, in get_git_version
    str("--work-tree=" + git_base_path), "describe", "--long", "--dirty", "--tags"
  File "C:\tools\Anaconda\lib\subprocess.py", line 626, in check_output
    **kwargs).stdout
  File "C:\tools\Anaconda\lib\subprocess.py", line 693, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\tools\Anaconda\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\tools\Anaconda\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified
Target //tensorflow/tools/pip_package:build_pip_package failed to build
INFO: Elapsed time: 10.997s, Critical Path: 3.44s
FAILED: Build did NOT complete successfully

Ich habe bei Null angefangen und Bazel aus Quellen erstellt. Jetzt baut es sich fast bis zum Ende auf

Es schlägt am Ende zur Verbindungszeit fehl:

ERROR: C:/libs/tensorflow/tensorflow/python/BUILD:1907:1: Linking of rule '//tensorflow/python:_pywrap_tensorflow.so' failed: msvc_link.bat failed: error executing command
  cd C:/tmp/Bazel/44EoGNou/execroot/tensorflow
  SET PATH=external/local_config_cc/wrapper/bin
  external/local_config_cc/wrapper/bin/msvc_link.bat /DLL /WHOLEARCHIVE -pthread -m64 -Xcompilation-mode=opt -Wl,@bazel-out/vc_14_0_x64-py3-opt/bin/tensorflow/python/_pywrap_tensorflow.so-2.params: com.google.devtools.build.lib.shell.BadExitStatusException: Process exited with status 1169
Warning: Unmatched arguments: -ldl -lm -ldl -lm
Warning: Unmatched arguments: -pthread
libversion_lib.a(version_info.o) : error LNK2005: "char const * __cdecl tf_compiler_version(void)" (?tf_compiler_version@@YAPEBDXZ) already defined in libframework_internal.lo(version_info.o)
libversion_lib.a(version_info.o) : error LNK2005: "char const * __cdecl tf_git_version(void)" (?tf_git_version@@YAPEBDXZ) already defined in libframework_internal.lo(version_info.o)
   Creating library bazel-out/vc_14_0_x64-py3-opt/bin/tensorflow/python/_pywrap_tensorflow.lib and object bazel-out/vc_14_0_x64-py3-opt/bin/tensorflow/python/_pywrap_tensorflow.exp
bazel-out/vc_14_0_x64-py3-opt/bin/tensorflow/python/_pywrap_tensorflow.so : fatal error LNK1169: one or more multiply defined symbols found
ERROR: C:/libs/tensorflow/tensorflow/python/BUILD:639:1: output 'tensorflow/python/gen_control_flow_ops_py_wrappers_cc.exe' was not created
ERROR: C:/libs/tensorflow/tensorflow/python/BUILD:698:1: output 'tensorflow/python/gen_resource_variable_ops_py_wrappers_cc.exe' was not created
Target //tensorflow/tools/pip_package:build_pip_package failed to build

Hallo Leute, jetzt, da die rudimentäre Windows-Unterstützung vorhanden ist, werde ich dieses Problem für neue Kommentare sperren, aber es offen lassen, bis wir eine stabile Version haben. Vorwärts gehen:

  • Wenn Sie ein Problem haben, öffnen Sie bitte ein neues Problem bei TensorFlow, um Ihr Problem zu beschreiben, und füllen Sie die Standardvorlage für Probleme aus. Dies wird uns helfen, die verbleibende Arbeit zu verfolgen und zuzuweisen, die wir erledigen müssen, um TensorFlow-on-Windows zu veröffentlichen.
  • Wir werden diese Ausgabe weiterhin für (seltene) Ankündigungen zum Windows-Support verwenden, sodass Sie die Ausgabe weiterhin abonnieren können, um einen Feed mit geringem Datenverkehr über Verbesserungen an TensorFlow-on-Windows zu erhalten.

Nochmals vielen Dank für Ihr Interesse an TensorFlow-on-Windows, und jetzt machen wir uns wieder an die Arbeit!

Heute haben wir native Windows-Unterstützung in TensorFlow 0.12 mit Paketen für Python 3.5 angekündigt . Wenn Sie die 64-Bit-Version von Python 3.5 (entweder von Python.org oder Anaconda) installiert haben, können Sie TensorFlow mit einem einzigen Befehl installieren:

C:\> pip install tensorflow

Wenn Sie CUDA 8.0 installiert haben, können Sie für die GPU-Unterstützung stattdessen das folgende Paket installieren:

C:\> pip install tensorflow-gpu

Jetzt, da Windows eine unterstützte Konfiguration ist, werde ich dieses Problem schließen; Bitte öffnen Sie ein neues Problem, wenn Sie Probleme mit diesen Paketen haben. Es gibt noch einige Abweichungen zwischen dem Windows-Paket und den anderen Plattformen, die in den Release Notes beschrieben werden. Wir werden in den nächsten Wochen daran arbeiten, diese Lücken zu schließen.

Vielen Dank für Ihr Interesse an TensorFlow unter Windows!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen