Merci d'avoir participé à Google I/O. Regardez toutes les sessions à la demandeRegarder à la demande

Construire à partir de la source sur Windows

Créez un package pip TensorFlow à partir de la source et installez-le sous Windows.

Configuration pour Windows

Installez les outils de génération suivants pour configurer votre environnement de développement Windows.

Installer Python et les dépendances du package TensorFlow

Installez une version Python 3.9+ 64 bits pour Windows . Sélectionnez pip comme fonctionnalité facultative et ajoutez-le à votre variable d'environnement %PATH% .

Installez les dépendances du package pip TensorFlow :

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

Les dépendances sont répertoriées dans le fichier setup.py sous REQUIRED_PACKAGES .

Installer Bazel

Installez Bazel , l'outil de compilation utilisé pour compiler TensorFlow. Pour la version Bazel, consultez les configurations de build testées pour Windows. Configurez Bazel pour compiler C++ .

Ajoutez l'emplacement de l'exécutable Bazel à votre variable d'environnement %PATH% .

Installer MSYS2

Installez MSYS2 pour les outils bin nécessaires à la création de TensorFlow. Si MSYS2 est installé sur C:\msys64 , ajoutez C:\msys64\usr\bin à votre variable d'environnement %PATH% . Ensuite, à l'aide de cmd.exe , exécutez :

pacman -S git patch unzip

Installer les outils de génération Visual C++ 2019

Installez les outils de génération Visual C++ 2019 . Cela vient avec Visual Studio 2019 mais peut être installé séparément :

  1. Accédez aux téléchargements de Visual Studio ,
  2. Sélectionnez Redistribuables et Build Tools ,
  3. Télécharger et installer:
    • Redistribuable Microsoft Visual C++ 2019
    • Outils de création Microsoft 2019

Installer le support GPU (facultatif)

Consultez le guide de prise en charge du GPU Windows pour installer les pilotes et les logiciels supplémentaires requis pour exécuter TensorFlow sur un GPU.

Télécharger le code source de TensorFlow

Utilisez Git pour cloner le référentiel TensorFlow ( git est installé avec MSYS2) :

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

Le référentiel est par défaut la branche de développement master . Vous pouvez également consulter une branche de version pour créer :

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

Facultatif : configuration des variables environnementales

Exécutez les commandes suivantes avant d'exécuter la commande build pour éviter tout problème avec la création du package : (Si les commandes ci-dessous ont été configurées lors de l'installation des packages, veuillez les ignorer). Exécutez set check si tous les chemins ont été définis correctement, exécutez echo %Environmental Variable% par exemple echo %BAZEL_VC% pour vérifier le chemin configuré pour une variable d'environnement spécifique

Problème de configuration du chemin Python 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 

Problème de configuration du chemin Bazel/MSVC 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 

Facultatif : Configurer la compilation

Les builds TensorFlow sont configurés par le fichier .bazelrc dans le répertoire racine du référentiel. Les scripts ./configure ou ./configure.py peuvent être utilisés pour ajuster les paramètres communs.

Si vous devez modifier la configuration, exécutez le script ./configure à partir du répertoire racine du référentiel.

python ./configure.py

Ce script vous invite à indiquer l'emplacement des dépendances TensorFlow et demande des options de configuration de construction supplémentaires (drapeaux de compilateur, par exemple). Ce qui suit montre un exemple d'exécution de python ./configure.py (votre session peut différer):

Construire et installer le paquet pip

Le paquet pip est construit en deux étapes. Une commande bazel build crée un programme "package-builder". Vous exécutez ensuite le package-builder pour créer le package.

Construire le générateur de packages

tensorflow:master repo a été mis à jour pour construire 2.x par défaut. Installez Bazel et utilisez bazel build pour créer le package-builder TensorFlow.

bazel build //tensorflow/tools/pip_package:build_pip_package

CPU uniquement

Utilisez bazel pour créer le générateur de packages TensorFlow avec une prise en charge du processeur uniquement :

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

Prise en charge du processeur graphique

Pour rendre le générateur de packages TensorFlow compatible avec le GPU :

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

Commandes pour nettoyer le cache bazel pour résoudre les erreurs dues à des données en cache invalides ou obsolètes, bazel clean avec l'indicateur --expunge supprime définitivement les fichiers

bazel clean 
bazel clean --expunge  

Options de construction de Bazel

Utilisez cette option lors de la construction pour éviter les problèmes de création de package : tensorflow:issue#22390

--define=no_tensorflow_py_deps=true

Consultez la référence de la ligne de commande Bazel pour les options de génération .

Construire TensorFlow à partir de la source peut utiliser beaucoup de RAM. Si votre système est limité en mémoire, limitez l'utilisation de la RAM de Bazel avec : --local_ram_resources=2048 .

Si la construction prend en charge le GPU, ajoutez --copt=-nvcc_options=disable-warnings pour supprimer les messages d'avertissement nvcc.

Construire le paquet

La commande bazel build crée un exécutable nommé build_pip_package — c'est le programme qui construit le paquet pip . Par exemple, ce qui suit crée un package .whl dans le répertoire C:/tmp/tensorflow_pkg :

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

Bien qu'il soit possible de créer des configurations CUDA et non CUDA sous la même arborescence source, nous vous recommandons d'exécuter bazel clean lors du basculement entre ces deux configurations dans la même arborescence source.

Installer le paquet

Le nom de fichier du fichier .whl généré dépend de la version de TensorFlow et de votre plate-forme. Utilisez pip3 install pour installer le package, par exemple :

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

Construire à l'aide du shell MSYS

TensorFlow peut également être créé à l'aide du shell MSYS. Apportez les modifications répertoriées ci-dessous, puis suivez les instructions précédentes pour la ligne de commande native de Windows ( cmd.exe ).

Désactiver la conversion du chemin MSYS

MSYS convertit automatiquement les arguments qui ressemblent à des chemins Unix en chemins Windows, et cela ne fonctionne pas avec bazel . (L'étiquette //path/to:bin est considérée comme un chemin absolu Unix puisqu'elle commence par une barre oblique.)

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL="*"

Définissez votre CHEMIN

Ajoutez les répertoires d'installation Bazel et Python à votre variable d'environnement $PATH . Si Bazel est installé sur C:\tools\bazel.exe et Python sur C:\Python\python.exe , définissez votre PATH avec :

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

Pour le support GPU, ajoutez les répertoires bin CUDA et cuDNN à votre $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"

Configurations de construction testées

CPU

Version VersionPython Compilateur Construire des outils
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 MSVC 2015 mise à jour 3 Bazel 0.19.0-0.21.0
tensorflow-1.12.0 3.5-3.6 MSVC 2015 mise à jour 3 Bazel 0.15.0
tensorflow-1.11.0 3.5-3.6 MSVC 2015 mise à jour 3 Bazel 0.15.0
tensorflow-1.10.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.9.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.8.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.7.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.6.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.5.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.4.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.3.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.2.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.1.0 3.5 MSVC 2015 mise à jour 3 Cmake v3.6.3
tensorflow-1.0.0 3.5 MSVC 2015 mise à jour 3 Cmake v3.6.3

GPU

Version VersionPython Compilateur Construire des outils 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 dix
tensorflow_gpu-1.15.0 3.5-3.7 MSVC 2017 Bazel 0.26.1 7.4 dix
tensorflow_gpu-1.14.0 3.5-3.7 MSVC 2017 Bazel 0.24.1-0.25.2 7.4 dix
tensorflow_gpu-1.13.0 3.5-3.7 MSVC 2015 mise à jour 3 Bazel 0.19.0-0.21.0 7.4 dix
tensorflow_gpu-1.12.0 3.5-3.6 MSVC 2015 mise à jour 3 Bazel 0.15.0 7.2 9.0
tensorflow_gpu-1.11.0 3.5-3.6 MSVC 2015 mise à jour 3 Bazel 0.15.0 7 9
tensorflow_gpu-1.10.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.9.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.8.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.7.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.6.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.5.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3 7 9
tensorflow_gpu-1.4.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.3.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3 6 8
tensorflow_gpu-1.2.0 3.5-3.6 MSVC 2015 mise à jour 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.1.0 3.5 MSVC 2015 mise à jour 3 Cmake v3.6.3 5.1 8
tensorflow_gpu-1.0.0 3.5 MSVC 2015 mise à jour 3 Cmake v3.6.3 5.1 8