Help protect the Great Barrier Reef with TensorFlow on Kaggle Join Challenge

Build aus dem Quellcode unter Windows

Bauen Sie ein TensorFlow Pip - Paket von Quelle und installieren Sie es unter Windows.

Einrichtung für Windows

Installieren Sie die folgenden Buildtools, um Ihre Windows-Entwicklungsumgebung zu konfigurieren.

Installieren Sie Python und die TensorFlow-Paketabhängigkeiten

Installieren Sie eine Python 3.6.x 64-Bit - Version für Windows . Wählen Sie pip als optionales Feature und fügen Sie es zu Ihrem %PATH% Umgebungsvariable.

Installieren Sie die TensorFlow pip Paketabhängigkeiten:

pip3 install six numpy wheel
pip3 install keras_applications==1.0.6 --no-deps
pip3 install keras_preprocessing==1.0.5 --no-deps

Die Abhängigkeiten werden in der aufgelisteten setup.py - Datei unter REQUIRED_PACKAGES .

Bazel installieren

Installieren Sie Bazel , das Werkzeug zu bauen verwendet TensorFlow zu kompilieren. Für Bazel Version finden Sie in den getesteten Build - Konfigurationen für Windows. Configure Bazel zu C ++ zu bauen .

Fügen Sie den Speicherort der Bazel ausführbare Datei zu Ihrem %PATH% Umgebungsvariable.

MSYS2 installieren

Installieren Sie MSYS2 für die bin Werkzeuge benötigt TensorFlow zu bauen. Wenn MSYS2 installiert ist C:\msys64 , fügen Sie C:\msys64\usr\bin auf Ihr %PATH% Umgebungsvariable. Dann, mit cmd.exe , auszuführen:

pacman -S git patch unzip

Installieren Sie die Visual C++-Buildtools 2019

Installieren Sie den Visual C ++ Build - Tools 2019. Dies kommt mit Visual Studio 2019, kann aber separat installiert werden:

  1. Gehen Sie auf die Visual Studio - Downloads ,
  2. Wählen Sie Redistributables und Build - Werkzeuge,
  3. Herunterladen und installieren:
    • Microsoft Visual C++ 2019 Redistributable
    • Microsoft Build-Tools 2019

GPU-Unterstützung installieren (optional)

Finden Sie in der Windows - GPU - Unterstützung Handbuch werden die Treiber und zusätzliche Software installieren erforderlich TensorFlow auf einer GPU laufen.

Laden Sie den TensorFlow-Quellcode herunter

Verwenden Sie Git klonen die TensorFlow Repository ( git mit MSYS2 installiert ist ):

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

Die Repo - Vorgaben an den master - Entwicklungszweig. Sie können auch eine Kasse Release - Zweig zu bauen:

git checkout branch_name  # r1.9, r1.10, etc.

Build konfigurieren

Konfigurieren Sie Ihren Systembuild, indem Sie Folgendes im Stammverzeichnis Ihres TensorFlow-Quellbaums ausführen:

python ./configure.py

Dieses Skript fragt Sie nach dem Speicherort der TensorFlow-Abhängigkeiten und fragt nach zusätzlichen Build-Konfigurationsoptionen (z. B. Compiler-Flags). Die folgenden zeigt eine Probe laufen von python ./configure.py (Ihre Sitzung kann abweichen):

Einstellmöglichkeiten

Für GPU - Unterstützung , geben Sie die Versionen von CUDA und cuDNN. Wenn auf Ihrem System mehrere Versionen von CUDA oder cuDNN installiert sind, legen Sie die Version explizit fest, anstatt sich auf den Standard zu verlassen. ./configure.py erstellt symbolische Links auf Ihr System CUDA - Bibliotheken-so , wenn Sie Ihre CUDA Bibliothekspfade aktualisieren, dieser Konfigurationsschritt wieder vor Gebäuden ausgeführt werden muß.

Baue das Pip-Paket

TensorFlow 2.x

tensorflow:master Repository wurde standardmäßig auf Build 2.x aktualisiert. Installieren Sie bazel build Bazel und verwenden bazel build , um das TensorFlow Paket zu erstellen.

bazel build //tensorflow/tools/pip_package:build_pip_package

TensorFlow 1.x

Um die 1.x - Version von TensorFlow von Master zu bauen, verwendet bazel build --config=v1 , um ein TensorFlow 1.x - Paket zu erstellen.

bazel build --config=v1 //tensorflow/tools/pip_package:build_pip_package

Nur CPU

Verwenden bazel das TensorFlow Paket Builder mit CPU-nur Unterstützung zu machen:

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

GPU-Unterstützung

So erstellen Sie den TensorFlow-Paketersteller mit GPU-Unterstützung:

bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package

Bazel-Build-Optionen

Verwenden Sie diese Option , wenn mit Paketerstellung zu vermeiden Ausgabe Aufbau: tensorflow: Ausgabe # 22390

--define=no_tensorflow_py_deps=true

Siehe die Bazel Befehlszeilenreferenz für Build - Optionen .

Das Erstellen von TensorFlow aus der Quelle kann viel RAM verbrauchen. Wenn Ihr System Speicher-constrained, Grenze Bazel der RAM - Nutzung mit: --local_ram_resources=2048 .

Wenn mit GPU - Unterstützung bauen, fügt --copt=-nvcc_options=disable-warnings zu unterdrücken nvcc Warnmeldungen.

Bauen Sie das Paket zusammen

Der bazel build Befehl erstellt eine ausführbare Datei namens build_pip_package -Dies ist das Programm, das die baut pip - Paket. Zum Beispiel baut folgende ein .whl Paket in dem C:/tmp/tensorflow_pkg Verzeichnis:

bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg

Obwohl es möglich ist , sowohl CUDA und nicht-CUDA configs unter dem gleichen Quellbaum zu bauen, empfehlen wir laufen bazel clean , wenn zwischen diesen beiden Konfigurationen in dem gleichen Quellbaum wechseln.

Installieren Sie das Paket

Der Dateiname der erzeugten .whl Datei hängt von der TensorFlow Version und Ihrer Plattform. Verwenden pip3 install Sie das Paket, zum Beispiel zu installieren:

pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-cp36-cp36m-win_amd64.whl

Build mit der MSYS-Shell

TensorFlow kann auch mit der MSYS-Shell erstellt werden. Nehmen Sie die Änderungen unten aufgeführt, dann die vorherigen Anweisungen folgen für die nativen Windows - Kommandozeile ( cmd.exe ).

Deaktivieren Sie die MSYS-Pfadkonvertierung

MSYS konvertiert automatisch Argumente , die aussehen wie Unix Pfade zu Windows - Pfade, und dies nicht mit funktioniert bazel . (Das Label //path/to:bin ein absoluter Pfad Unix betrachtet , da es mit einem Schrägstrich beginnt.)

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

Legen Sie Ihren PFAD fest

Fügen Sie die Bazel und Python - Installation Verzeichnisse auf Ihre $PATH Umgebungsvariable. Wenn Bazel installiert ist C:\tools\bazel.exe und Python zu C:\Python36\python.exe , stellen Sie Ihren PATH mit:

# Use Unix-style with ':' as separator
export PATH="/c/tools:$PATH"
export PATH="/c/Python36:$PATH"

Für GPU - Unterstützung, fügen Sie die CUDA und cuDNN sind Verzeichnisse zu Ihrem $PATH :

export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/bin:$PATH"
export PATH="/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.0/extras/CUPTI/libx64:$PATH"
export PATH="/c/tools/cuda/bin:$PATH"

Getestete Build-Konfigurationen

Zentralprozessor

Ausführung Python-Version Compiler Build-Tools
tensorflow-2.6.0 3,6-3,9 MSVC 2019 Bazel 3.7.2
Tensorflow-2.5.0 3,6-3,9 MSVC 2019 Bazel 3.7.2
tensorflow-2.4.0 3,6-3,8 MSVC 2019 Bazel 3.1.0
tensorflow-2.3.0 3,5-3,8 MSVC 2019 Bazel 3.1.0
Tensorflow-2.2.0 3,5-3,8 MSVC 2019 Bazel 2.0.0
tensorflow-2.1.0 3,5-3,7 MSVC 2019 Bazel 0.27.1-0.29,1
Tensorflow-2.0.0 3,5-3,7 MSVC 2017 Bazel 0.26.1
Tensorflow-1.15.0 3,5-3,7 MSVC 2017 Bazel 0.26.1
tensorflow-1.14.0 3,5-3,7 MSVC 2017 Bazel 0.24.1-0.25.2
Tensorflow-1.13.0 3,5-3,7 MSVC 2015-Update 3 Bazel 0.19.0-0.21.0
Tensorflow-1.12.0 3,5-3,6 MSVC 2015-Update 3 Bazel 0.15.0
Tensorflow-1.11.0 3,5-3,6 MSVC 2015-Update 3 Bazel 0.15.0
Tensorflow-1.10.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3
Tensorflow-1.9.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3
tensorflow-1.8.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3
tensorflow-1.7.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3
tensorflow-1.6.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3
tensorflow-1.5.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3
tensorflow-1.4.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3
tensorflow-1.3.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3
tensorflow-1.2.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3
tensorflow-1.1.0 3.5 MSVC 2015-Update 3 Cmake v3.6.3
Tensorflow-1.0.0 3.5 MSVC 2015-Update 3 Cmake v3.6.3

GPU

Ausführung Python-Version Compiler Build-Tools cuDNN CUDA
tensorflow_gpu-2.6.0 3,6-3,9 MSVC 2019 Bazel 3.7.2 8.1 11.2
tensorflow_gpu-2.5.0 3,6-3,9 MSVC 2019 Bazel 3.7.2 8.1 11.2
tensorflow_gpu-2.4.0 3,6-3,8 MSVC 2019 Bazel 3.1.0 8.0 11,0
tensorflow_gpu-2.3.0 3,5-3,8 MSVC 2019 Bazel 3.1.0 7,6 10.1
tensorflow_gpu-2.2.0 3,5-3,8 MSVC 2019 Bazel 2.0.0 7,6 10.1
tensorflow_gpu-2.1.0 3,5-3,7 MSVC 2019 Bazel 0.27.1-0.29,1 7,6 10.1
tensorflow_gpu-2.0.0 3,5-3,7 MSVC 2017 Bazel 0.26.1 7,4 10
tensorflow_gpu-1.15.0 3,5-3,7 MSVC 2017 Bazel 0.26.1 7,4 10
tensorflow_gpu-1.14.0 3,5-3,7 MSVC 2017 Bazel 0.24.1-0.25.2 7,4 10
tensorflow_gpu-1.13.0 3,5-3,7 MSVC 2015-Update 3 Bazel 0.19.0-0.21.0 7,4 10
tensorflow_gpu-1.12.0 3,5-3,6 MSVC 2015-Update 3 Bazel 0.15.0 7.2 9,0
tensorflow_gpu-1.11.0 3,5-3,6 MSVC 2015-Update 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.9.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.8.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.7.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.6.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.5.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.4.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.3.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.2.0 3,5-3,6 MSVC 2015-Update 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 MSVC 2015-Update 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 MSVC 2015-Update 3 Cmake v3.6.3 5.1 8