[Update 1] Erstellt an installéiert TensorFlow GPU / CPU fir Windows aus Quellcode mat Bazel a Python 3.6

Dëst ass en Update zu menger fréierer Geschicht. Wat ass nei hei:

  • TensorFlow v1.11
  • CUDA v10.0
  • cuDNN v7.3

Et gi Guiden op der offizieller Säit. Et ass net ganz ëmfaassend, awer et ass heiansdo nëtzlech.

Resumé

  1. Installéiert Git fir Windows
  2. Installéiert Bazel
  3. Installéiert MSYS2 x64 a Kommandozeilentools
  4. Installéiert Visual Studio 2017 Build Tools, abegraff Visual Studio 2015 Build Tools
  5. Installéiert Python 3.6 64-Bit
  6. Installéiert NVIDIA CUDA 10.0 a cuDNN 7.3 (fir GPU Beschleunegung)
  7. Konfiguréiert de Bauëmfeld
  8. Klon den TensorFlow v1.11 Quellcode an applizéiert den obligatoresche Patch
  9. Konfiguréiert d'Buusparameter
  10. Build TensorFlow aus Quellen
  11. Erstellt eng TensorFlow Raddatei fir Python 3.6
  12. Installéiert d'TensorFlow Raddatei fir Python 3.6 a kontrolléiert d'Resultat

Schrëtt 1: Install Git fir Windows

Eroflueden an installéieren Git fir Windows. Ech huelen et hei. Gitt sécher datt de Wee op git.exe zu der% PATH% Ëmfeldvariabel bäigefüügt gouf. Ech installéiere Git op der

C: \ Bin \ Git

Dossier fir dësen Tutorial.

Schrëtt 2: Installéiert MSYS2 x64 a Command Line Tools

Eroflueden an installéieren déi 64-Bit Verdeelung hei. Bazel benotzt grep, patch, unzipand an aner Ports vun Unix Tools fir Quellen ze bauen. Dir kënnt probéieren eegestänneg Binäre fir jidderee vun hinnen ze fannen, awer ech benotze léiwer de MSYS2 Package. Ech installéieren et op der

C: \ Bin \ msys64

Dossier fir dësen Tutorial. Dir musst en Tools Ordner der% PATH% Ëmfeld Variabel bäifügen. A mengem Fall ass et "C: \ Bin \ msys64 \ usr \ bin".

Fänkt de Link "MSYS2 MinGW 64-Bit" iwwer de Startmenü un. Fir z'aktualiséieren, fuert de folgenden Kommando (start MSYS2 MinGW 64-Bit wann Dir gefrot gëtt):

Pacman Syu

Da lafen:

Pacman -Su

Installatiounsinstrumenter si fir de Bau erfuerderlech:

Pak de Pacman Patch aus

Maacht d'MSYS2 MinGW 64-Bit Shell mat dem Kommando "exit" zou. Mir brauchen et net méi.

Schrëtt 3: Installéiere Visual Studio 2017 Build Tools, abegraff Visual Studio 2015 Build Tools

Mir mussen de VC ++ 2015.3 v14.00 (v140) fir Desktop Toolset vu Visual Studio 2017 Build Tools installéieren fir TensorFlow v1.11 ze bauen:

Schrëtt 4: installéiert Bazel

Luet déi lescht Basel hei erof. Kuckt de Fichier bazel- -Windows-x86_64.exe. Ech hunn dësen Tutorial mat Bazel 0.17.2 getest. Rename de Binär op bazel.exe a réckelt en an e Verzeechnes op% PATH% sou datt Dir Bazel ausféiere kënnt andeems Dir Bazel an all Verzeechnes tippt. Fir Detailer iwwer Installatioun vu Bazel fir Windows x64, fannt Dir op Probleemer.

Füügt d'global Ëmfeldvariabel BAZEL_SH fir d'Bash Positioun bäi. Mäi Wee ass

C: \ Bin \ msys64 \ usr \ bin \ bash.exe

Füügt d'global Ëmweltvariabel BAZEL_VC fir den Toolset "VC ++ 2015.3 v14.00 (v140) fir Desktop" bäi:

C: \ Programm Dateien (x86) \ Microsoft Visual Studio 14.0 \ VC

Schrëtt 5: Python 3.6 64-Bit installéieren

TensorFlow ënnerstëtzt net Python 3.7, dofir musst Dir Versioun 3.6 installéieren.
Et gesäit aus wéi TensorFlow v1.11 net méi Anaconda / Miniconda fir Builds ënnerstëtzt - ech kréien e komesche Feeler. Dofir benotze ech de Python virtuellt Ëmfeld fir ze kreéieren.

Python 3.6 ass hei ze downloaden. Installéiert et a füügt de python.exe Standuert zu der% PATH% Variabel bäi.

Schrëtt 6: Installéiert NVIDIA CUDA 10.0 a cuDNN 7.3 (fir GPU Beschleunegung)

Dës Sektioun ass aktuell wann Dir eng NVIDIA Grafikkaart hutt déi CUDA ënnerstëtzt. Soss spréngt dës Sektioun.
Eng step-by-step Installatioun vu CUDA ass hei verfügbar wann Dir Hëllef braucht. Ech kopéieren dëse Guide awer schneiden e puer Detailer aus.

Gitt op https://developer.nvidia.com/cuda-downloads an eroflueden den CUDA 10.0 Installateur fir Windows [Är Versioun]. Fir mech ass d'Versioun Windows 10.

Installéiert et am Standardverzeechnes mat de Standardastellungen, awer deaktivéiert d'VisualStudio Integratiounsoptioun. De GPU Treiber gëtt aktualiséiert a wann néideg nei gestart.

Fëllt de cmd (Win + R) Kommando

De folgenden Kommando kontrolléiert no enger Versioun vun nvcc a garantéiert datt se an der Path Ëmfeld Variabel gesat gëtt.

nvcc - Versioun

Gitt op https://developer.nvidia.com/cudnn (Memberschaft erfuerderlech).

Nodeems Dir Iech ageloggt hutt, lueden:

cuDNN v7.3.1 Bibliothéik fir Windows [Är Versioun] fir mech Windows 10. Gitt an den Dossier deen Dir erofgelueden hutt an zip Datei extrahéiert.

Gitt an den extrahéierten Dossier a kopéiert all Dateien a Classeuren aus dem cuda Dossier (z. B. bin, enthalen, lib) a pecht se an "C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 " eent.

De leschte Schrëtt ass "C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.0 \ Extras \ CUPTI \ libx64" an d'Ëmfeldvariabel% PATH% hinzuzufügen.

Schrëtt 7: Konfiguréiert de Bauëmfeld

Start de VC ++ 2015 Shell fir x64 (Ofkierzung "VS2015 x64 Native Tools Kommandozeechen") aus dem Startmenü.

Als nächst musst Dir e Python-Ëmfeld erstellen, aktivéieren a konfiguréieren. Féiert déi folgend Shell Kommandoen an der "VS2015 x64 Native Tools Command Prompt" (korrigéiert d'Weeër no Äre Positiounen).

pip3 installéieren -U virtualenv
virtualenv --system-site-Packages C: \ Benotzer \ amsokol \ tensorflow-v1.11
C: \ Benotzer \ amsokol \ tensorflow-v1.11 \ Scripts \ aktivéieren.bat

Är Shell soll sou ausgesinn no de Befehle applizéiert:

Installéiert déi obligatoresch Python Packagen:

pip3 installéiert sechs numpy Rad
pip3 installéiert keras_applications == 1.0.5 --no-deps
pip3 installéiert keras_preprocessing == 1.0.3 --no-deps

Fuert "pip3 Lëscht" fir sécher ze sinn datt obligatoresch Packagen installéiert sinn:

Dat ass alles fir de Moment. Maacht d'Schuel net zou.

Schrëtt 8: Klon den TensorFlow Quellcode an applizéiert den obligatoresche Patch

Als éischt musst Dir den Dossier auswielen wou Dir wëllt datt den TensorFlow Quellcode gekloont gëtt. A mengem Fall ass et "C: \ Benotzer \ amsokol \ Entwécklung \ tensorflow-build". Zréck an d'Schuel a lafen:

cd C: \ Benotzer \ amsokol \ Entwécklung \ tensorflow-bauen

Klon Quellcode:

Git Klon https://github.com/tensorflow/tensorflow

Checkout lescht Versioun 1.11:

CD Tensorflow
Gitt Kasse v1.11.0

Elo hu mir Quellen.

Et ass e BUG an hirer eegener Drëtt Partei Bibliothéik. Mir mussen et behiewen ier mer bauen.
  • Luet de Patch hei erof a späichert et mam Dateinumm eigen_half.patch am Third_party Dossier
  • Füügt patch_file = clean_dep ("// third_party: eigen_half.patch") bäi, Linn op d'Sektioun "eigen_archive" vun der Datei tensorflow / workspace.bzl.

D'Resultat an der Tensorflow / workspace.bzl Datei sollt esou ausgesinn:

... tf_http_archive (name = "eigen_archive", urls = ["https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/fd6845384b86.tar.gz", "https://bitbucket.org /eigen/eigen/get/fd6845384b86.tar.gz ",], sha256 =" d956415d784fa4e42b6a2a45c32556d6aec9d0a3d8ef48baee2522ab762556a9 ", strip_prefix.", strip_prefix = "own-own-clean-part ("// third_party: eigen_half.patch"),) ...

Gemaach.

Schrëtt 9: Konfiguréiert d'Buusparameter

Gitt sécher datt mir am Quellcode Root Ordner sinn:

cd C: \ Benotzer \ amsokol \ Entwécklung \ tensorflow-bauen \ tensorflow

Féiert de Konfigurator:

Python ./configure.py

Als éischt gëtt Dir no der Plaz vum Python gefrot. Dréckt Enter fir de Standardwert ze halen:

... Dir hutt Bazel 0.17.2 installéiert.
Gitt weg d'Location vu Python un. [Standard ass C: \ Benotzer \ amsokol \ tensorflow-v1.11 \ Scripts \ python.exe]:

Dir wäert dann de Wee an d'Python Bibliothéik gefrot ginn. Dréckt Enter fir de Standardwert ze halen:

Tracking (leschten Uruff lescht): Datei " ", Linn 1, an AttributeError: Modul 'Site' huet keen Attribut 'getsitepackages' Fonnt méiglech Python Bibliothéik Weeër: C: \ Benotzer \ amsokol \ tensorflow-v1.11 \ Lib \ Site-Packagen Gitt w.e.g. de gewënschte Python Bibliothéik Wee an. Standard ass [C: \ Benotzer \ amsokol \ tensorflow-v1.11 \ Lib \ Site-Packagen]

Da gëtt Dir fir Ënnerstëtzung vun nGraph gefrot. Mir brauchen et net. Dréckt "n":

Wëllt Dir TensorFlow mat nGraph Support bauen? [Y / N]: n nGraf Ënnerstëtzung ass net fir TensorFlow aktivéiert.

Da freet et no CUDA Ënnerstëtzung:

Wëllt Dir TensorFlow mat CUDA Support bauen? [Y / N]:

Äntwert "y" wann Dir GPU Beschleunegung benotze wëllt. Soss dréckt "n".

Wa jo fir de CUDA Konfigurator, ginn zousätzlech Froen gestallt:
Äntwert 10.0 als CUDA SDK Versioun:
Gitt weg d'CUDA SDK Versioun un déi Dir benotze wëllt. [Loosst eidel fir CUDA 9.0 als Standard ze benotzen]: 10.0
Dréckt Enter fir aus dem Standard CUDA Toolkit Location erauszekommen:
Gitt w.e.g. d'Plaz wou de CUDA 10.0 Toolkit installéiert ass. Kuckt README.md fir méi Informatioun. [Standard ass C: / Programmer / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Äntwert 7.3.1 als cuDNN Versioun:
Gitt weg déi gewënschte cuDNN Versioun un. [Loosst eidel fir cuDNN 7.0 als Standard ze benotzen]: 7.3.1
Dréckt Enter fir aus der Standard cuDNN Bibliothéik Location erauszekommen:
Gitt w.e.g. de Standort an wou d'cuDNN 7 Bibliothéik installéiert ass. Kuckt README.md fir méi Informatioun. [Standard ass C: / Programmer / NVIDIA GPU Computing Toolkit / CUDA / v10.0]:
Déi nächst Fro betrëfft d'CUDA arithmetesch Funktiounen déi kënne benotzt gi fir ze bauen. Dir fannt d'Berechnungskapazitéit vun Ärem Apparat op: https://developer.nvidia.com/cuda-gpus. Ech hunn GTX 1070, also äntweren ech 6.1:
Gitt eng Lëscht vun de Komma-getrennte Cuda Mathematikfunktiounen, mat deenen Dir wëllt bauen. Dir fannt d'Berechnungskapazitéit vun Ärem Apparat op: https://developer.nvidia.com/cuda-gpus. Maacht weg datt all zousätzlech Berechnungsfunktioun d'Kreatiounszäit an d'binär Gréisst erheblech erhéicht. [Standard ass: 3.5.7.0]: 6.1

Déi nächst Fro ass Optimisatiounsfändelen ze setzen. Ech hunn eng 6. Generatioun Intel CPU, also äntweren ech / arch: AVX2:

Gitt weg Optimiséierungsfändelen, déi wärend der Kompiléierung benotzt ginn, wann d'Basel Optioun "--config = opt" spezifizéiert ass. [Standard ass / arch: AVX]: / arch: AVX2

Déi lescht Fro ass iwwer Eigen. Äntwert mat "y". Et reduzéiert drastesch d'Zäit kompiléieren.

Wëllt Dir Är eege staark Inline fir e puer C ++ Compilatiounen iwwerschreiwe fir d'Kompilatiounszäit ze reduzéieren? [Y / n]: Y Eigen staark iwwerschriwwe Inline.

Konfiguratioun fäerdeg. Loosst eis bauen.

Schrëtt 10: bauen TensorFlow aus Quellen

Gitt sécher datt mir am Quellcode Root Ordner sinn:

cd C: \ Benotzer \ amsokol \ Entwécklung \ tensorflow-bauen \ tensorflow
Et brauch laang ze kreéieren. Ech recommandéieren drun Antivirus Software auszeschalten inklusive Windows Defender Antivirus Echtzäit Schutz.

Ausféieren bauen:

bazel bauen --config = opt // tensorflow / tools / pip_package: build_pip_package

Sëtzt Iech zréck a relax fir eng Zäit.

Schrëtt 11: Erstellt eng TensorFlow Raddatei fir Python 3.6

Fëllt de Kommando fir eng Python Wheel Datei ze kreéieren:

mkdir .. \ eraus
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

Et feelt:

Et ass e bekannte Problem. Kuckt den Dossier "bazel-bin \ tensorflow \ tools \ pip_package". Et enthält d'Datei "simple_console_for_windows.zip" mat Nulllängt. Dat ass de Problem. Bazel enthält en 32-Bit Zip Utility deen op enger 2GB méi grousser Datei fällt. Kuckt Linken fir Detailer an Ëmgank:

  • https://github.com/tensorflow/tensorflow/issues/20332
  • https://stackoverflow.com/questions/52394305/creating-pip-package-for-tensorflow-with-gpu-support-results-in-0-byte-simple-co

Et gi Schrëtt fir de Problem ze behiewen:

CD. \ bazel-bin \ tensorflow \ tools \ pip_package

Öffnen d'Datei "simple_console_for_windows.zip-0.params" an huelt d'Linn mat "mnist.zip":

...
runfiles / org_tensorflow / tensorflow / contrib / eager / python / Beispiller / gan / mnist.zip = bazel-out / x64_windows-opt / bin / tensorflow / contrib / eager / python / Beispiller / gan / mnist.zip
...
Et hëlleft mir. Wann et Iech net hëlleft, ewechzehuelen einfach aner Zeilen mat Zip Dateien (kuckt Detailer hei). Den Zweck vun dëser Aktivitéit ass fir simple_console_for_windows.zip manner wéi 2 GB ze halen.

Läscht déi eidel Datei "simple_console_for_windows.zip".

Nächst, kuckt an Ärem Heemechtsdossier. Dir musst den Dossier mam Numm "_bazel_" fannen "Kuckt. A mengem Fall ass et" _bazel_amsokol ". Et enthält Classeure mat Build Dateien. A mengem Fall ass et" lx6zoh4k ". Zréck op d'Shell vun engem Run (no Ären Ordner Nimm korrekt):

cd C: \ Benotzer \ amsokol \ _bazel_amsokol \ lx6zoh4k \ execroot \ org_tensorflow

Erstellt d'Datei "simple_console_for_windows.zip" manuell:

extern \ bazel_tools \ Tools \ zip \ zipper \ zipper.exe vcC bazel-out / x64_windows-opt / bin / tensorflow / tools / pip_package / simple_console_for_windows.zip @ bazel-out / x64_windows-opt / bin / tensorflow / tools / pip_package / simple_console_for_windows.zip-0.params

Fëllt de Kommando fir eng Python Wheel Datei ze kreéieren:

cd C: \ Benotzer \ amsokol \ Entwécklung \ tensorflow-bauen \ tensorflow
bazel-bin \ tensorflow \ tools \ pip_package \ build_pip_package .. \ out

Et erstellt d'Datei tensorflow-1.11.0-cp36-cp36m-win_amd64.whl am Dossier ".. \ out".

Schrëtt 12: installéiert d'TensorFlow Raddatei fir Python 3.6 a kontrolléiert d'Resultat

Fëllt de Kommando fir d'Python Wheel Datei z'installéieren:

pip3 installéieren .. \ out \ tensorflow-1.11.0-cp36-cp36m-win_amd64.whl

Exit vum Tensorflow Verzeechnes

CD ..

Fir den Download Skript hei ze kontrolléieren oder auszeféieren a kopéieren:

Import Tensorflow als tf hallo = tf.constant ('Hallo, TensorFlow!') Sessioun = tf.Session () dréckt (session.run (hallo))

Wann de System dat folgend ausgëtt ass alles an der Rei:

Moien TensorFlow!

Meng Ausgab:

Dir hutt elo erfollegräich TensorFlow op engem Windows Computer installéiert.

Loosst mech an de Kommentarer hei ënnen wëssen ob et fir Iech funktionnéiert. Oder wann Dir Feeler hutt. Villmols Merci!