Crea un pacchetto pip TensorFlow dall'origine e installalo su Windows.
Installazione 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 di Python 3.7+ a 64 bit per Windows . Seleziona pip come funzione facoltativa e aggiungila alla tua variabile ambientale %PATH%
.
Installa le dipendenze del pacchetto pip di TensorFlow:
pip3 install -U six numpy wheel packaging
pip3 install -U keras_preprocessing --no-deps
Le dipendenze sono elencate nel file setup.py
in 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 tua variabile d'ambiente %PATH%
.
Installa MSYS2
Installa MSYS2 per gli strumenti bin necessari per creare TensorFlow. Se MSYS2 è installato in C:\msys64
, aggiungi C:\msys64\usr\bin
alla variabile di ambiente %PATH%
. Quindi, usando cmd.exe
, esegui:
pacman -S git patch unzip
Installa gli strumenti di compilazione di Visual C++ 2019
Installa gli strumenti di compilazione di Visual C++ 2019 . Viene fornito con Visual Studio 2019 ma può essere installato separatamente:
- Vai ai download di Visual Studio ,
- Selezionare Redistributables e Build Tools ,
- Scarica e installa:
- Microsoft Visual C++ 2019 ridistribuibile
- Strumenti di compilazione Microsoft 2019
Installa il supporto GPU (facoltativo)
Consulta la guida di 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
Usa Git per clonare il repository TensorFlow ( git
è installato con MSYS2):
git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
L'impostazione predefinita del 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: configurare il build
Le build di TensorFlow sono configurate dal file .bazelrc
nella directory principale 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 principale del repository.
python ./configure.py
Questo script richiede la posizione delle dipendenze TensorFlow e richiede ulteriori opzioni di configurazione della build (flag del compilatore, ad esempio). Quanto segue mostra un'esecuzione di esempio di python ./configure.py
(la tua sessione potrebbe essere diversa):
Opzioni di configurazione
Per il supporto GPU , specifica le versioni di CUDA e cuDNN. Se il tuo sistema ha più versioni di CUDA o cuDNN installate, imposta esplicitamente la versione invece di affidarti a quella predefinita. ./configure.py
crea collegamenti simbolici alle librerie CUDA del tuo sistema, quindi se aggiorni i percorsi della tua libreria CUDA, questo passaggio di configurazione deve essere eseguito di nuovo prima della compilazione.
Compila e installa il pacchetto pip
Il pacchetto pip viene compilato in due passaggi. Un bazel build
crea un programma "costruttore di pacchetti". Quindi esegui il generatore di pacchetti per creare il pacchetto.
Costruisci il generatore di pacchetti
tensorflow:repo master è stato aggiornato per creare 2.x per impostazione predefinita. Installa Bazel e usa bazel build
per creare il generatore di pacchetti TensorFlow.
bazel build //tensorflow/tools/pip_package:build_pip_package
Solo CPU
Usa bazel
per creare il generatore di pacchetti TensorFlow con supporto solo per CPU:
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package
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
Opzioni di costruzione Bazel
Utilizzare questa opzione durante la compilazione per evitare problemi con la creazione del pacchetto: tensorflow:issue#22390
--define=no_tensorflow_py_deps=true
Vedere il riferimento della riga di comando Bazel per le opzioni di compilazione .
La compilazione di TensorFlow dall'origine può utilizzare molta RAM. Se il tuo sistema è limitato dalla 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 sopprimere i messaggi di avviso nvcc.
Costruisci il pacchetto
Il comando bazel build
crea un eseguibile chiamato build_pip_package
: questo è il programma che crea il pacchetto pip
. Ad esempio, quanto segue crea un pacchetto .whl
nella C:/tmp/tensorflow_pkg
:
bazel-bin\tensorflow\tools\pip_package\build_pip_package C:/tmp/tensorflow_pkg
Sebbene sia possibile creare configurazioni CUDA e non CUDA nello stesso albero dei sorgenti, si consiglia di eseguire bazel clean
quando si passa da una configurazione all'altra nello stesso albero dei sorgenti.
Installa il pacchetto
Il nome del file .whl
generato dipende dalla versione di TensorFlow e dalla tua piattaforma. Utilizzare pip3 install
per installare il pacchetto, ad esempio:
pip3 install C:/tmp/tensorflow_pkg/tensorflow-version-cp36-cp36m-win_amd64.whl
Compila utilizzando la shell MSYS
TensorFlow può anche essere creato utilizzando la shell MSYS. Apporta le modifiche elencate di seguito, quindi segui 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 sembrano 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 tua variabile ambientale $PATH
. Se Bazel è installato in C:\tools\bazel.exe
e Python in C:\Python36\python.exe
, imposta il tuo PATH
con:
# Use Unix-style with ':' as separatorexport PATH="/c/tools:$PATH"
export PATH="/c/Python36:$PATH"
Per il supporto della 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 Python | Compilatore | Costruisci strumenti |
---|---|---|---|
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 | MSVC 2015 aggiornamento 3 | Bazel 0.19.0-0.21.0 |
tensorflow-1.12.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Bazel 0.15.0 |
tensorflow-1.11.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Bazel 0.15.0 |
tensorflow-1.10.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.9.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.8.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.7.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.6.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.5.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.4.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.3.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.2.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.1.0 | 3.5 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
tensorflow-1.0.0 | 3.5 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 |
GPU
Versione | Versione Python | Compilatore | Costruisci strumenti | cuDNN | CUDA |
---|---|---|---|---|---|
tensorflow_gpu-2.11.0 | 3.7-3.10 | MSVC 2019 | Bazel 5.3.0 | 8.1 | 11.2 |
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 | MSVC 2015 aggiornamento 3 | Bazel 0.19.0-0.21.0 | 7.4 | 10 |
tensorflow_gpu-1.12.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Bazel 0.15.0 | 7.2 | 9.0 |
tensorflow_gpu-1.11.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Bazel 0.15.0 | 7 | 9 |
tensorflow_gpu-1.10.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.9.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.8.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.7.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.6.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.5.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 7 | 9 |
tensorflow_gpu-1.4.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.3.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 6 | 8 |
tensorflow_gpu-1.2.0 | 3.5-3.6 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.1.0 | 3.5 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 5.1 | 8 |
tensorflow_gpu-1.0.0 | 3.5 | MSVC 2015 aggiornamento 3 | Cmake v3.6.3 | 5.1 | 8 |