Google I/O is a wrap! Catch up on TensorFlow sessions View sessions

Twórz ze źródła w systemie Windows

Zbuduj pakiet pip TensorFlow ze źródła i zainstaluj go w systemie Windows.

Konfiguracja dla systemu Windows

Zainstaluj następujące narzędzia do kompilacji, aby skonfigurować środowisko programistyczne systemu Windows.

Zainstaluj Pythona i zależności pakietów TensorFlow

Zainstaluj 64-bitową wersję Pythona 3.7+ dla systemu Windows . Wybierz pip jako opcjonalną funkcję i dodaj go do zmiennej środowiskowej %PATH% .

Zainstaluj zależności pakietu TensorFlow pip :

pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps

Zależności są wymienione w pliku setup.py w obszarze REQUIRED_PACKAGES .

Zainstaluj Bazel

Zainstaluj Bazel , narzędzie do budowania używane do kompilacji TensorFlow. W przypadku wersji Bazel zobacz przetestowane konfiguracje kompilacji dla systemu Windows. Skonfiguruj Bazel do kompilacji C++ .

Dodaj lokalizację pliku wykonywalnego Bazel do zmiennej środowiskowej %PATH% .

Zainstaluj MSYS2

Zainstaluj MSYS2 dla narzędzi bin potrzebnych do zbudowania TensorFlow. Jeśli MSYS2 jest zainstalowany w C:\msys64 , dodaj C:\msys64\usr\bin do zmiennej środowiskowej %PATH% . Następnie za pomocą cmd.exe uruchom:

pacman -S git patch unzip

Zainstaluj narzędzia do kompilacji Visual C++ 2019

Zainstaluj narzędzia kompilacji Visual C++ 2019 . To jest dostarczane z programem Visual Studio 2019 , ale można je zainstalować osobno:

  1. Przejdź do plików do pobrania programu Visual Studio ,
  2. Wybierz Elementy redystrybucyjne i narzędzia do budowania ,
  3. Ściągnij i zainstaluj:
    • Pakiet redystrybucyjny Microsoft Visual C++ 2019
    • Narzędzia do kompilacji Microsoft 2019

Zainstaluj obsługę GPU (opcjonalnie)

Zapoznaj się z przewodnikiem obsługi GPU dla systemu Windows, aby zainstalować sterowniki i dodatkowe oprogramowanie wymagane do uruchomienia TensorFlow na GPU.

Pobierz kod źródłowy TensorFlow

Użyj Git , aby sklonować repozytorium TensorFlow ( git jest instalowany z MSYS2):

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

Repo domyślnie to master gałąź programistyczna. Możesz również pobrać gałąź wydania, aby zbudować:

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

Skonfiguruj kompilację

Skonfiguruj kompilację systemu, uruchamiając następujące polecenie w katalogu głównym drzewa źródłowego TensorFlow:

python ./configure.py

Ten skrypt monituje o lokalizację zależności TensorFlow i prosi o dodatkowe opcje konfiguracji kompilacji (na przykład flagi kompilatora). Poniżej przedstawiono przykładowe uruchomienie python ./configure.py (Twoja sesja może się różnić):

Opcje konfiguracji

W przypadku obsługi GPU określ wersje CUDA i cuDNN. Jeśli w systemie jest zainstalowanych wiele wersji CUDA lub cuDNN, jawnie ustaw wersję zamiast polegać na domyślnej. ./configure.py tworzy dowiązania symboliczne do bibliotek CUDA twojego systemu — więc jeśli zaktualizujesz ścieżki bibliotek CUDA, ten krok konfiguracji musi zostać uruchomiony ponownie przed budowaniem.

Zbuduj pakiet pip

TensorFlow 2.x

Tensorflow:master repo zostało domyślnie zaktualizowane do wersji 2.x. Zainstaluj Bazel i użyj bazel build , aby utworzyć pakiet TensorFlow.

bazel build //tensorflow/tools/pip_package:build_pip_package

TensorFlow 1.x

Aby zbudować wersję 1.x TensorFlow z mastera, użyj bazel build --config=v1 , aby utworzyć pakiet TensorFlow 1.x.

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

Tylko procesor

Użyj bazel , aby stworzyć konstruktora pakietów TensorFlow z obsługą tylko procesora:

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

Obsługa GPU

Aby stworzyć konstruktora pakietów TensorFlow z obsługą GPU:

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

Opcje budowania Bazela

Użyj tej opcji podczas budowania, aby uniknąć problemów z tworzeniem pakietu: tensorflow:issue#22390

--define=no_tensorflow_py_deps=true

Zobacz informacje o wierszu polecenia Bazel, aby uzyskać informacje na temat opcji kompilacji .

Budowanie TensorFlow ze źródeł może zużywać dużo pamięci RAM. Jeśli twój system jest ograniczony pamięcią, ogranicz użycie pamięci RAM przez Bazel za pomocą: --local_ram_resources=2048 .

Jeśli kompilujesz z obsługą GPU, dodaj --copt=-nvcc_options=disable-warnings , aby pominąć komunikaty ostrzegawcze nvcc.

Zbuduj pakiet

Polecenie bazel build tworzy plik wykonywalny o nazwie build_pip_package — jest to program, który buduje pakiet pip . Na przykład, poniższy rysunek tworzy pakiet .whl w katalogu C:/tmp/tensorflow_pkg :

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

Chociaż możliwe jest zbudowanie zarówno konfiguracji CUDA, jak i innych niż CUDA w tym samym drzewie źródłowym, zalecamy uruchomienie bazel clean podczas przełączania między tymi dwiema konfiguracjami w tym samym drzewie źródłowym.

Zainstaluj pakiet

Nazwa wygenerowanego pliku .whl zależy od wersji TensorFlow i platformy. Użyj pip3 install , aby zainstalować pakiet, na przykład:

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

Buduj za pomocą powłoki MSYS

TensorFlow można również zbudować przy użyciu powłoki MSYS. Wprowadź zmiany wymienione poniżej, a następnie postępuj zgodnie z poprzednimi instrukcjami dotyczącymi rodzimego wiersza poleceń systemu Windows ( cmd.exe ).

Wyłącz konwersję ścieżki MSYS

MSYS automatycznie konwertuje argumenty, które wyglądają jak ścieżki uniksowe, na ścieżki Windows, a to nie działa z bazel . (Etykieta //path/to:bin jest uważana za ścieżkę bezwzględną uniksową, ponieważ zaczyna się od ukośnika).

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

Ustaw swoją ŚCIEŻKĘ

Dodaj katalogi instalacyjne Bazel i Python do zmiennej środowiskowej $PATH . Jeśli Bazel jest zainstalowany w C:\tools\bazel.exe , a Python w C:\Python36\python.exe PATH ustaw ŚCIEŻKĘ za pomocą:

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

Aby uzyskać obsługę GPU, dodaj katalogi CUDA i cuDNN bin do $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"

Testowane konfiguracje kompilacji

procesor

Wersja Wersja Pythona Kompilator Narzędzia do budowania
przepływ tensorowy-2.9.0 3,7-3,10 MSVC 2019 Bazel 5.0.0
przepływ tensorowy-2,8.0 3,7-3,10 MSVC 2019 Bazylea 4.2.1
przepływ tensorowy-2.7.0 3,7-3,9 MSVC 2019 Bazylea 3.7.2
przepływ tensorowy-2,6,0 3,6-3,9 MSVC 2019 Bazylea 3.7.2
przepływ tensorowy-2,5,0 3,6-3,9 MSVC 2019 Bazylea 3.7.2
przepływ tensorowy-2.4.0 3,6-3,8 MSVC 2019 Bazel 3.1.0
przepływ tensorowy-2.3.0 3,5-3,8 MSVC 2019 Bazel 3.1.0
przepływ tensorowy-2.2.0 3,5-3,8 MSVC 2019 Bazel 2.0.0
przepływ tensorowy-2.1.0 3,5-3,7 MSVC 2019 Bazylego 0,27,1-0,29,1
przepływ tensorowy-2.0.0 3,5-3,7 MSVC 2017 Bazylego 0,26,1
przepływ tensorowy-1.15.0 3,5-3,7 MSVC 2017 Bazylego 0,26,1
przepływ tensorowy-1.14.0 3,5-3,7 MSVC 2017 Bazyl 0,24,1-0,25,2
przepływ tensorowy-1.13.0 3,5-3,7 Aktualizacja MSVC 2015 3 Bazel 0,19,0-0,21,0
przepływ tensorowy-1.12.0 3,5-3,6 Aktualizacja MSVC 2015 3 Bazel 0.15.0
przepływ tensorowy-1.11.0 3,5-3,6 Aktualizacja MSVC 2015 3 Bazel 0.15.0
przepływ tensorowy-1.10.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1.9.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1,8.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1,7.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1,6,0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1.5.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1.4.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1,3,0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1.2.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1.1.0 3,5 Aktualizacja MSVC 2015 3 Cmake v3.6.3
przepływ tensorowy-1.0.0 3,5 Aktualizacja MSVC 2015 3 Cmake v3.6.3

GPU

Wersja Wersja Pythona Kompilator Narzędzia do budowania cuDNN CUDA
tensorflow_gpu-2.9.0 3,7-3,10 MSVC 2019 Bazel 5.0.0 8.1 11.2
tensorflow_gpu-2.8.0 3,7-3,10 MSVC 2019 Bazylea 4.2.1 8.1 11.2
tensorflow_gpu-2.7.0 3,7-3,9 MSVC 2019 Bazylea 3.7.2 8.1 11.2
tensorflow_gpu-2.6.0 3,6-3,9 MSVC 2019 Bazylea 3.7.2 8.1 11.2
tensorflow_gpu-2.5.0 3,6-3,9 MSVC 2019 Bazylea 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 Bazylego 0,27,1-0,29,1 7,6 10.1
tensorflow_gpu-2.0.0 3,5-3,7 MSVC 2017 Bazylego 0,26,1 7,4 10
tensorflow_gpu-1.15.0 3,5-3,7 MSVC 2017 Bazylego 0,26,1 7,4 10
tensorflow_gpu-1.14.0 3,5-3,7 MSVC 2017 Bazyl 0,24,1-0,25,2 7,4 10
tensorflow_gpu-1.13.0 3,5-3,7 Aktualizacja MSVC 2015 3 Bazel 0,19,0-0,21,0 7,4 10
tensorflow_gpu-1.12.0 3,5-3,6 Aktualizacja MSVC 2015 3 Bazel 0.15.0 7,2 9,0
tensorflow_gpu-1.11.0 3,5-3,6 Aktualizacja MSVC 2015 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.9.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.8.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.7.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.6.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.5.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.4.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.3.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.2.0 3,5-3,6 Aktualizacja MSVC 2015 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3,5 Aktualizacja MSVC 2015 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3,5 Aktualizacja MSVC 2015 3 Cmake v3.6.3 5.1 8