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 zależności Pythona i pakietu TensorFlow
Zainstaluj wersję Pythona 3.9 lub nowszą w wersji 64-bitowej dla systemu Windows . Wybierz pip jako funkcję opcjonalną i dodaj ją do zmiennej środowiskowej %PATH%
.
Zainstaluj zależności pakietu pip TensorFlow:
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
Zależności są wymienione w pliku setup.py
w sekcji REQUIRED_PACKAGES
.
Zainstaluj Bazela
Zainstaluj Bazel , narzędzie do kompilacji używane do kompilacji TensorFlow. W przypadku wersji Bazel zobacz przetestowane konfiguracje kompilacji dla systemu Windows. Skonfiguruj Bazela do zbudowania C++ .
Dodaj lokalizację pliku wykonywalnego Bazel do zmiennej środowiskowej %PATH%
.
Zainstaluj MSYS2
Zainstaluj MSYS2, aby uzyskać narzędzia bin potrzebne 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 budowania Visual C++ 2019
Zainstaluj narzędzia do kompilacji Visual C++ 2019 . Jest dostarczany z programem Visual Studio 2019 , ale można go zainstalować osobno:
- Przejdź do plików do pobrania Visual Studio ,
- Wybierz elementy redystrybucyjne i narzędzia do tworzenia ,
- Ściągnij i zainstaluj:
- Pakiet redystrybucyjny Microsoft Visual C++ 2019
- Narzędzia Microsoft do budowania 2019
Zainstaluj obsługę GPU (opcjonalnie)
Zobacz przewodnik obsługi procesora graficznego dla systemu Windows, aby zainstalować sterowniki i dodatkowe oprogramowanie wymagane do uruchomienia TensorFlow na procesorze graficznym.
Pobierz kod źródłowy TensorFlow
Użyj Git , aby sklonować repozytorium TensorFlow ( git
jest zainstalowany z MSYS2):
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
Domyślnie repozytorium znajduje się w master
gałęzi rozwojowej. Możesz także sprawdzić gałąź wydania do zbudowania:
git checkout branch_name # r1.9, r1.10, etc.
Opcjonalnie: konfiguracja zmiennej środowiskowej
Uruchom następujące polecenia przed uruchomieniem polecenia kompilacji, aby uniknąć problemów z tworzeniem pakietu: (Jeśli poniższe polecenia zostały skonfigurowane podczas instalowania pakietów, zignoruj je). Uruchom set
sprawdź, czy wszystkie ścieżki zostały ustawione poprawnie, uruchom echo %Environmental Variable%
np. echo %BAZEL_VC%
aby sprawdzić konfigurację ścieżki dla określonej zmiennej środowiskowej
Problem z konfiguracją ścieżki Pythona tensorflow:issue#59943 , tensorflow:issue#9436 , tensorflow:issue#60083
set PATH=path/to/python # [e.g. (C:/Python310)] set PATH=path/to/python/Scripts # [e.g. (C:/Python310/Scripts)] set PYTHON_BIN_PATH=path/to/python_virtualenv/Scripts/python.exe set PYTHON_LIB_PATH=path/to/python virtualenv/lib/site-packages set PYTHON_DIRECTORY=path/to/python_virtualenv/Scripts
Konfiguracja ścieżki Bazel/MSVC problem tensorflow:issue#54578
set BAZEL_SH=C:/msys64/usr/bin/bash.exe set BAZEL_VS=C:/Program Files(x86)/Microsoft Visual Studio/2019/BuildTools set BAZEL_VC=C:/Program Files(x86)/Microsoft Visual Studio/2019/BuildTools/VC
Opcjonalnie: Skonfiguruj kompilację
Kompilacje TensorFlow są konfigurowane przez plik .bazelrc
w katalogu głównym repozytorium. Do dostosowania typowych ustawień można użyć skryptów ./configure
lub ./configure.py
.
Jeśli chcesz zmienić konfigurację, uruchom skrypt ./configure
z katalogu głównego repozytorium.
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ć):
Zbuduj i zainstaluj pakiet pip
Pakiet pip jest budowany w dwóch krokach. Komendy bazel build
tworzą program „konstruktora pakietów”. Następnie uruchamiasz kreatora pakietów, aby utworzyć pakiet.
Zbuduj narzędzie do tworzenia pakietów
repozytorium tensorflow:master zostało domyślnie zaktualizowane do wersji 2.x. Zainstaluj Bazel i użyj bazel build
, aby utworzyć narzędzie do tworzenia pakietów TensorFlow.
bazel build //tensorflow/tools/pip_package:build_pip_package
Tylko procesor
Użyj bazel
, aby stworzyć konstruktor pakietów TensorFlow z obsługą tylko procesora:
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
Wsparcie GPU
Aby stworzyć narzędzie do tworzenia 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
Polecenia do czyszczenia pamięci podręcznej Bazel w celu usunięcia błędów spowodowanych nieprawidłowymi lub nieaktualnymi danymi w pamięci podręcznej, Bazel clean z flagą --expunge usuwa pliki trwale
bazel clean bazel clean --expunge
Opcje kompilacji Bazela
Użyj tej opcji podczas budowania, aby uniknąć problemów z tworzeniem pakietu: tensorflow:issue#22390
--define=no_tensorflow_py_deps=true
Aby zapoznać się z opcjami kompilacji, zobacz opis wiersza poleceń Bazel.
Budowanie TensorFlow ze źródła może wymagać dużej ilości pamięci RAM. Jeśli twój system ma ograniczoną pamięć, ogranicz użycie RAMu Bazela za pomocą: --local_ram_resources=2048
.
Jeśli budujesz z obsługą GPU, dodaj --copt=-nvcc_options=disable-warnings
aby ukryć 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 kompiluje 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 budowanie konfiguracji CUDA i innych niż CUDA w tym samym drzewie źródłowym, zalecamy uruchamianie 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 Twojej platformy. Użyj pip3 install
, aby zainstalować pakiet, na przykład:
pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-tags.whl e.g. pip3 install C:/tmp/tensorflow_pkg/tensorflow-2.12.0-cp310-cp310-win_amd64.whl
Kompiluj przy użyciu 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 natywnego wiersza poleceń systemu Windows ( cmd.exe
).
Wyłącz konwersję ścieżki MSYS
MSYS automatycznie konwertuje argumenty wyglądające jak ścieżki uniksowe na ścieżki Windows, co nie działa w przypadku bazel
. (Etykieta //path/to:bin
jest uważana za ścieżkę bezwzględną w systemie Unix, 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:\Python\python.exe
, ustaw PATH
za pomocą:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$PATH"
Aby uzyskać obsługę GPU, dodaj katalogi bin CUDA i cuDNN 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"
Przetestowane konfiguracje kompilacji
procesor
Wersja | Wersja Pythona | Kompilator | Buduj narzędzia |
---|---|---|---|
tensorflow-2.14.0 | 3,9-3,11 | MSVC 2019 | Bazela 6.1.0 |
tensorflow-2.12.0 | 3.8-3.11 | MSVC 2019 | Bazel 5.3.0 |
tensorflow-2.11.0 | 3,7-3,10 | MSVC 2019 | Bazel 5.3.0 |
tensorflow-2.10.0 | 3,7-3,10 | MSVC 2019 | Bazela 5.1.1 |
tensorflow-2.9.0 | 3,7-3,10 | MSVC 2019 | Bazel 5.0.0 |
tensorflow-2.8.0 | 3,7-3,10 | MSVC 2019 | Bazela 4.2.1 |
tensorflow-2.7.0 | 3,7-3,9 | MSVC 2019 | Bazela 3.7.2 |
tensorflow-2.6.0 | 3,6-3,9 | MSVC 2019 | Bazela 3.7.2 |
tensorflow-2.5.0 | 3,6-3,9 | MSVC 2019 | Bazela 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 | Aktualizacja MSVC 2015 3 | Bazel 0.19.0-0.21.0 |
tensorflow-1.12.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Bazel 0.15.0 |
tensorflow-1.11.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Bazel 0.15.0 |
tensorflow-1.10.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.9.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.8.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.7.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.6.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.5.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.4.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.3.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.2.0 | 3,5-3,6 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.1.0 | 3.5 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
tensorflow-1.0.0 | 3.5 | Aktualizacja MSVC 2015 3 | Cmake v3.6.3 |
GPU
Wersja | Wersja Pythona | Kompilator | Buduj narzędzia | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.10.0 | 3,7-3,10 | MSVC 2019 | Bazela 5.1.1 | 8.1 | 11.2 |
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 | Bazela 4.2.1 | 8.1 | 11.2 |
tensorflow_gpu-2.7.0 | 3,7-3,9 | MSVC 2019 | Bazela 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.6.0 | 3,6-3,9 | MSVC 2019 | Bazela 3.7.2 | 8.1 | 11.2 |
tensorflow_gpu-2.5.0 | 3,6-3,9 | MSVC 2019 | Bazela 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 | 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 |