Crea un pacchetto pip TensorFlow dall'origine e installalo su Windows.
Configurazione per Windows
Installa i seguenti strumenti di compilazione per configurare il tuo ambiente di sviluppo Windows.
Installa Python e le dipendenze del pacchetto TensorFlow
Installa una versione Python 3.9+ a 64 bit per Windows . Seleziona pip come funzionalità opzionale e aggiungilo alla variabile ambientale %PATH%
.
Installa le dipendenze del pacchetto pip TensorFlow:
pip3 install -U pip
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
Le dipendenze sono elencate nel file setup.py
sotto REQUIRED_PACKAGES
.
Installa Bazel
Installa Bazel , lo strumento di compilazione utilizzato per compilare TensorFlow. Per la versione Bazel, vedere le configurazioni di build testate per Windows. Configura Bazel per compilare C++ .
Aggiungi la posizione dell'eseguibile Bazel alla variabile di ambiente %PATH%
.
Installa MSYS2
Installa MSYS2 per gli strumenti bin necessari per creare TensorFlow. Se MSYS2 è installato su C:\msys64
, aggiungi C:\msys64\usr\bin
alla variabile di ambiente %PATH%
. Quindi, utilizzando cmd.exe
, esegui:
pacman -Syu (requires a console restart) pacman -S git patch unzip pacman -S git patch unzip rsync
Installa gli strumenti di creazione di Visual C++ 2022
Installa gli strumenti di compilazione di Visual C++ 2022 . Viene fornito con Visual Studio Community 2022 ma può essere installato separatamente:
- Vai ai download di Visual Studio ,
- Seleziona Strumenti per Visual Studio o Altri strumenti, Framework e ridistribuibili ,
- Scarica e installa:
- Crea strumenti per Visual Studio 2022
- Ridistribuibili di Microsoft Visual C++ per Visual Studio 2022
Installa LLVM
- Vai ai download di LLVM ,
- Scarica e installa LLVM compatibile con Windows in C:/Programmi/LLVM, ad esempio LLVM-17.0.6-win64.exe
Installa il supporto GPU (opzionale)
Consulta la guida al supporto della GPU di Windows per installare i driver e il software aggiuntivo necessari per eseguire TensorFlow su una GPU.
Scarica il codice sorgente di TensorFlow
Utilizza Git per clonare il repository TensorFlow ( git
è installato con MSYS2):
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
Per impostazione predefinita il repository è il ramo di sviluppo master
. Puoi anche controllare un ramo di rilascio per creare:
git checkout branch_name # r1.9, r1.10, etc.
Facoltativo: impostazione della variabile ambientale
Esegui i seguenti comandi prima di eseguire il comando build per evitare problemi con la creazione del pacchetto: (Se i comandi seguenti sono stati impostati durante l'installazione dei pacchetti, ignorali). Esegui set
per verificare se tutti i percorsi sono stati impostati correttamente, esegui echo %Environmental Variable%
ad esempio, echo %BAZEL_VC%
per verificare il percorso impostato per una variabile ambientale specifica
Problema di impostazione del percorso Python tensorflow:issue#59943 , tensorflow:issue#9436 , tensorflow:issue#60083
set PATH=path/to/python;%PATH% # [e.g. (C:/Python311)] set PATH=path/to/python/Scripts;%PATH% # [e.g. (C:/Python311/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
Problema di configurazione del percorso Bazel/MSVC/CLANG tensorflow:issue#54578
set BAZEL_SH=C:/msys64/usr/bin/bash.exe set BAZEL_VS=C:/Program Files/Microsoft Visual Studio/2022/BuildTools set BAZEL_VC=C:/Program Files/Microsoft Visual Studio/2022/BuildTools/VC set Bazel_LLVM=C:/Program Files/LLVM (explicitly tell Bazel where LLVM is installed by BAZEL_LLVM, needed while using CLANG) set PATH=C:/Program Files/LLVM/bin;%PATH% (Optional, needed while using CLANG as Compiler)
Facoltativo: configurare la build
Le build di TensorFlow sono configurate dal file .bazelrc
nella directory root del repository. Gli script ./configure
o ./configure.py
possono essere utilizzati per regolare le impostazioni comuni.
Se è necessario modificare la configurazione, eseguire lo script ./configure
dalla directory root del repository.
python ./configure.py
Questo script richiede la posizione delle dipendenze di TensorFlow e richiede ulteriori opzioni di configurazione della build (flag del compilatore, ad esempio). Di seguito viene mostrato un esempio di esecuzione di python ./configure.py
(la sessione potrebbe differire):
Compila e installa il pacchetto pip
Il pacchetto pip viene creato in due passaggi. Un comando bazel build
crea un programma di "generazione di pacchetti". Quindi esegui il generatore di pacchetti per creare il pacchetto.
Costruisci il generatore di pacchetti
tensorflow:master repo è stato aggiornato alla build 2.x per impostazione predefinita. Installa Bazel e utilizza bazel build
per creare il generatore di pacchetti TensorFlow.
bazel build //tensorflow/tools/pip_package:wheel
Solo CPU
Utilizza bazel
per creare il generatore di pacchetti TensorFlow con supporto solo per CPU:
Costruisci con MSVC
bazel build --config=opt --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Costruisci con CLANG
Utilizza --config= win_clang
per creare TenorFlow con il compilatore CLANG:
bazel build --config=win_clang --repo_env=TF_PYTHON_VERSION=3.11 //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Supporto GPU
Per creare il generatore di pacchetti TensorFlow con supporto GPU:
bazel build --config=opt --config=cuda --define=no_tensorflow_py_deps=true //tensorflow/tools/pip_package:build_pip_package
Comandi per pulire la cache di Bazel per risolvere errori dovuti a dati memorizzati nella cache non validi o obsoleti, Bazel Clean con il flag --expunge rimuove i file in modo permanente
bazel clean bazel clean --expunge
Opzioni di costruzione Bazel
Utilizza questa opzione durante la creazione per evitare problemi con la creazione del pacchetto: tensorflow:issue#22390
--define=no_tensorflow_py_deps=true
Consulta il riferimento alla riga di comando di Bazel per le opzioni di creazione .
La creazione di TensorFlow dal sorgente può utilizzare molta RAM. Se il tuo sistema ha limiti di memoria, limita l'utilizzo della RAM di Bazel con: --local_ram_resources=2048
.
Se si compila con il supporto GPU, aggiungere --copt=-nvcc_options=disable-warnings
per eliminare i messaggi di avviso nvcc.
Costruisci il pacchetto
Per creare un pacchetto pip, è necessario specificare il flag --repo_env=WHEEL_NAME. A seconda del nome fornito, verrà creato il pacchetto. Per esempio:
Per creare il pacchetto CPU tensorflow:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tensorflow_cpu
Per creare un pacchetto notturno, imposta tf_nightly
invece di tensorflow
, ad esempio per creare un pacchetto notturno della CPU:
bazel build //tensorflow/tools/pip_package:wheel --repo_env=WHEEL_NAME=tf_nightly_cpu
Di conseguenza, la ruota generata verrà posizionata in
bazel-bin/tensorflow/tools/pip_package/wheel_house/
Installa il pacchetto
Il nome del file .whl
generato dipende dalla versione di TensorFlow e dalla tua piattaforma. Utilizzare pip install
per installare il pacchetto, ad esempio:
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Costruisci utilizzando la shell MSYS
TensorFlow può anche essere creato utilizzando la shell MSYS. Apportare le modifiche elencate di seguito, quindi seguire le istruzioni precedenti per la riga di comando nativa di Windows ( cmd.exe
).
Disabilita la conversione del percorso MSYS
MSYS converte automaticamente gli argomenti che assomigliano a percorsi Unix in percorsi Windows e questo non funziona con bazel
. (L'etichetta //path/to:bin
è considerata un percorso assoluto Unix poiché inizia con una barra.)
export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"
Imposta il tuo PERCORSO
Aggiungi le directory di installazione di Bazel e Python alla variabile ambientale $PATH
. Se Bazel è installato su C:\tools\bazel.exe
e Python su C:\Python\python.exe
, imposta il PATH
con:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/path/to/Python:$PATH"
Per il supporto GPU, aggiungi le directory bin CUDA e cuDNN al tuo $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"
Configurazioni di build testate
processore
Versione | Versione pitone | Compilatore | Costruisci strumenti |
---|---|---|---|
tensorflow-2.18.0 | 3.9-3.12 | CLANG 17.0.6 | Bazel 6.5.0 |
tensorflow-2.17.0 | 3.9-3.12 | CLANG 17.0.6 | Bazel 6.5.0 |
tensorflow-2.16.1 | 3.9-3.12 | CLANG 17.0.6 | Bazel 6.5.0 |
tensorflow-2.15.0 | 3.9-3.11 | MSVC 2019 | Bazel 6.1.0 |
tensorflow-2.14.0 | 3.9-3.11 | MSVC 2019 | Bazel 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 | Bazel 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 | Bazel 4.2.1 |
tensorflow-2.7.0 | 3.7-3.9 | MSVC 2019 | Bazel 3.7.2 |
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 | Aggiornamento 3 di MSVC 2015 | Bazel 0.19.0-0.21.0 |
tensorflow-1.12.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Bazel 0.15.0 |
tensorflow-1.11.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Bazel 0.15.0 |
tensorflow-1.10.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.9.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.8.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.7.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.6.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.5.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.4.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.3.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.2.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.1.0 | 3.5 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
tensorflow-1.0.0 | 3.5 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 |
GPU
Versione | Versione pitone | Compilatore | Costruisci strumenti | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.10.0 | 3.7-3.10 | MSVC 2019 | Bazel 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 | Bazel 4.2.1 | 8.1 | 11.2 |
tensorflow_gpu-2.7.0 | 3.7-3.9 | MSVC 2019 | Bazel 3.7.2 | 8.1 | 11.2 |
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 | Aggiornamento 3 di MSVC 2015 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Bazel 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | Aggiornamento 3 di MSVC 2015 | Cmake v3.6.3 | 5.1 | 8 |