Compilez un paquet pip TensorFlow à partir des sources et installez-le sur Ubuntu Linux et macOS. Bien que la procédure puisse fonctionner sur d'autres systèmes, elle n'est testée et prise en charge que pour Ubuntu et macOS.
Configuration pour Linux et macOS
Installez les outils de construction suivants pour configurer votre environnement de développement.
Installez Python et les dépendances du package TensorFlow.
Ubuntu
sudo apt install python3-dev python3-pipmacOS
Nécessite Xcode 9.2 ou une version ultérieure.
Installez-le à l'aide du gestionnaire de paquets Homebrew :
brew install python Installez les dépendances du package pip TensorFlow (si vous utilisez un environnement virtuel, omettez l'argument --user ) :
pip install -U --user pipInstallez Bazel
Pour compiler TensorFlow, vous devez installer Bazel. Bazelisk facilite l'installation de Bazel et télécharge automatiquement la version adaptée à TensorFlow. Pour plus de simplicité, ajoutez Bazelisk comme exécutable bazel à votre PATH .
Si Bazelisk n'est pas disponible, vous pouvez installer Bazel manuellement. Veillez à installer la version de Bazel appropriée à partir du fichier .bazelversion de TensorFlow.
Installez Clang (recommandé, Linux uniquement)
Clang est un compilateur C/C++/Objective-C compilé en C++ et basé sur LLVM. Il est le compilateur par défaut pour la compilation de TensorFlow depuis la version 2.13. La version actuellement prise en charge est LLVM/Clang 17.
Les paquets nocturnes LLVM pour Debian/Ubuntu fournissent un script d'installation automatique et des paquets pour une installation manuelle sous Linux. Assurez-vous d'exécuter la commande suivante si vous ajoutez manuellement le dépôt apt llvm à vos sources de paquets :
sudo apt-get update && sudo apt-get install -y llvm-17 clang-17 Maintenant /usr/lib/llvm-17/bin/clang est le chemin d'accès réel à clang dans ce cas.
Vous pouvez également télécharger et décompresser le Clang + LLVM 17 précompilé.
Voici un exemple des étapes à suivre pour installer les binaires Clang + LLVM 17 téléchargés sur les systèmes d'exploitation Debian/Ubuntu :
Accédez au répertoire de destination souhaité :
cd <desired directory>Charger et extraire un fichier d'archive...(adapté à votre architecture) :
wget https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.2/clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xztar -xvf clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xzCopiez le contenu extrait (répertoires et fichiers) dans
/usr(vous aurez peut-être besoin des droits sudo, et le répertoire exact peut varier selon votre distribution). Cela installera Clang et LLVM et les ajoutera au chemin d'accès. Vous ne devriez rien avoir à remplacer, sauf si vous avez déjà une installation ; dans ce cas, vous devrez remplacer les fichiers :cp -r clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04/* /usrVérifiez la version des binaires Clang + LLVM 17 obtenus :
clang --versionLe chemin d'accès à votre nouvelle installation de clang se trouve désormais dans
/usr/bin/clang. Vous pouvez exécuter le script./configureou définir manuellement les variables d'environnementCCetBAZEL_COMPILERsur ce chemin.
Installer le support GPU (facultatif, Linux uniquement)
macOS ne prend pas en charge les GPU.
Consultez le guide de prise en charge des GPU pour installer les pilotes et les logiciels supplémentaires nécessaires à l'exécution de TensorFlow sur un GPU.
Télécharger le code source de TensorFlow
Utilisez Git pour cloner le dépôt TensorFlow :
git clone https://github.com/tensorflow/tensorflow.gitcd tensorflow
Le dépôt utilise par défaut la branche de développement master . Vous pouvez également utiliser une branche de publication pour la compilation :
git checkout branch_name # r2.2, r2.3, etc.
Configurer la version
La configuration des installations TensorFlow s'effectue via le fichier .bazelrc situé à la racine du dépôt. Les scripts ./configure ou ./configure.py permettent de modifier les paramètres courants.
Veuillez exécuter le script ./configure depuis le répertoire racine du dépôt. Ce script vous demandera l'emplacement des dépendances TensorFlow et des options de configuration supplémentaires (par exemple, des options de compilation). Consultez la section « Exemple de session » pour plus de détails.
./configure
Il existe également une version Python de ce script : ./configure.py . Si vous utilisez un environnement virtuel, python configure.py privilégie les chemins situés à l’intérieur de cet environnement, tandis que ./configure privilégie les chemins situés à l’extérieur. Dans les deux cas, vous pouvez modifier le comportement par défaut.
Session d'exemple
L'exemple suivant illustre l'exécution du script ./configure (votre session peut différer) :
Options de configuration
Prise en charge du GPU
à partir de la version 2.18.0
Pour la prise en charge du GPU , définissez cuda=Y lors de la configuration et spécifiez les versions de CUDA et cuDNN si nécessaire. Bazel téléchargera automatiquement les packages CUDA et cuDNN ou indiquera l'emplacement des redistribuables CUDA/CUDNN/NCCL sur le système de fichiers local si nécessaire.
avant la version 2.18.0
Pour la prise en charge du GPU , définissez cuda=Y lors de la configuration et spécifiez les versions de CUDA et cuDNN. Si plusieurs versions de CUDA ou cuDNN sont installées sur votre système, spécifiez explicitement la version au lieu d'utiliser la version par défaut. ./configure crée des liens symboliques vers les bibliothèques CUDA de votre système ; par conséquent, si vous modifiez les chemins d'accès à vos bibliothèques CUDA, cette étape de configuration doit être exécutée à nouveau avant la compilation.
Optimisations
Pour les options d'optimisation à la compilation, la valeur par défaut ( -march=native ) optimise le code généré pour le type de processeur de votre machine. Toutefois, si vous compilez TensorFlow pour un autre type de processeur, envisagez une option d'optimisation plus spécifique. Consultez la documentation de GCC pour des exemples.
Configurations préconfigurées
Il existe des configurations de build préconfigurées disponibles qui peuvent être ajoutées à la commande bazel build , par exemple :
-
--config=dbg— Compiler avec les informations de débogage. Voir CONTRIBUTING.md pour plus de détails. -
--config=mkl—Prise en charge de l' Intel® MKL-DNN . -
--config=monolithic—Configuration pour une construction monolithique principalement statique.
Compilez et installez le package pip
options de configuration Bazel
Consultez la documentation de référence de la ligne de commande Bazel pour connaître les options de compilation .
La compilation de TensorFlow à partir des sources peut consommer beaucoup de RAM. Si votre système est limité en mémoire, limitez l'utilisation de la RAM par Bazel avec : --local_ram_resources=2048 .
Les paquets officiels TensorFlow sont construits avec une chaîne d'outils Clang conforme à la norme de paquet manylinux2014.
Constituer le package
Pour créer un paquet pip, vous devez spécifier l'option --repo_env=WHEEL_NAME . En fonction du nom fourni, le paquet sera créé, par exemple :
Pour compiler le package CPU tensorflow :
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_cpu
Pour créer un package GPU TensorFlow :
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow --config=cuda --config=cuda_wheel
Pour créer un package TPU TensorFlow :
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_tpu --config=tpu
Pour créer un package nightly, définissez tf_nightly au lieu de tensorflow , par exemple pour créer un package nightly CPU :
bazel build //tensorflow/tools/pip_package:wheel --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tf_nightly_cpu
Par conséquent, la roue générée sera située dans
bazel-bin/tensorflow/tools/pip_package/wheel_house/
Installez le package
Le nom du fichier .whl généré dépend de la version de TensorFlow et de votre plateforme. Utilisez pip install pour installer le package, par exemple :
pip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Builds Docker Linux
Les images de développement Docker de TensorFlow permettent de configurer facilement un environnement pour compiler des paquets Linux à partir du code source. Ces images contiennent déjà le code source et les dépendances nécessaires à la compilation de TensorFlow. Consultez le guide Docker de TensorFlow pour obtenir les instructions d'installation et la liste des étiquettes d'image disponibles .
Processeur uniquement
L'exemple suivant utilise l'image :devel pour créer un package CPU uniquement à partir du code source TensorFlow le plus récent. Consultez le guide Docker pour connaître les étiquettes -devel de TensorFlow disponibles.
Téléchargez la dernière image de développement et démarrez un conteneur Docker que vous utiliserez pour créer le package pip :
docker pull tensorflow/tensorflow:develdocker run -it -w /tensorflow_src -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel bashgit pull # within the container, download the latest source code
La commande docker run ci-dessus lance un shell dans le répertoire /tensorflow_src , à la racine de l'arborescence source. Elle monte le répertoire courant de l'hôte dans le répertoire ` /mnt du conteneur et transmet les informations de l'utilisateur hôte au conteneur via une variable d'environnement (utilisée pour définir les permissions ; Docker peut rendre cette opération complexe).
Autre solution pour créer une copie hôte de TensorFlow dans un conteneur : monter l’arborescence source hôte dans le répertoire /tensorflow du conteneur :
docker run -it -w /tensorflow -v /path/to/tensorflow:/tensorflow -v $PWD:/mnt \ -e HOST_PERMS="\\((id -u):\\)(id -g)" tensorflow/tensorflow:devel bash
Une fois l'arborescence source configurée, compilez le package TensorFlow dans l'environnement virtuel du conteneur :
- Facultatif : Configurer la compilation — cette option invite l’utilisateur à répondre à des questions de configuration de la compilation.
- Créez le paquet pip .
- Modifiez les autorisations de propriété du fichier pour les éléments situés en dehors du conteneur.
./configure # if necessarybazel build //tensorflow/tools/pip_package:wheel \ --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow_cpu --config=opt`chown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Installez et vérifiez le paquet dans le conteneur :
pip uninstall tensorflow # remove current versionpip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whlcd /tmp # don't import from source directorypython -c "import tensorflow as tf; print(tf.__version__)"
Sur votre machine hôte, le package pip TensorFlow se trouve dans le répertoire courant (avec les permissions de l'utilisateur hôte) ./tensorflow- version - tags .whl
Prise en charge du GPU
Docker est la méthode la plus simple pour activer la prise en charge GPU avec TensorFlow, car la machine hôte ne nécessite que le pilote NVIDIA® (le kit de développement NVIDIA® CUDA® n'a pas besoin d'être installé). Consultez le guide de prise en charge GPU et le guide Docker de TensorFlow pour configurer nvidia-docker (Linux uniquement).
L'exemple suivant télécharge l'image TensorFlow :devel-gpu et utilise nvidia-docker pour exécuter le conteneur compatible GPU. Cette image de développement est configurée pour créer un paquet pip prenant en charge le GPU :
docker pull tensorflow/tensorflow:devel-gpudocker run --gpus all -it -w /tensorflow -v $PWD:/mnt -e HOST_PERMS="$(id -u):$(id -g)" \ tensorflow/tensorflow:devel-gpu bashgit pull # within the container, download the latest source code
Ensuite, dans l'environnement virtuel du conteneur, compilez le package TensorFlow avec prise en charge GPU :
./configure # if necessarybazel build //tensorflow/tools/pip_package:wheel \ --repo_env=USE_PYWRAP_RULES=1 --repo_env=WHEEL_NAME=tensorflow --config=cuda \ --config=cuda_wheel --config=optchown $HOST_PERMS bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whl
Installez et vérifiez le paquet dans le conteneur et vérifiez la présence d'un GPU :
pip uninstall tensorflow # remove current versionpip install bazel-bin/tensorflow/tools/pip_package/wheel_house/tensorflow-version-tags.whlcd /tmp # don't import from source directorypython -c "import tensorflow as tf; print(\"Num GPUs Available: \", len(tf.config.list_physical_devices('GPU')))"
Configurations de compilation testées
Linux
processeur
| Version | Version Python | Compilateur | Outils de construction |
|---|---|---|---|
| tensorflow-2.21.0 | 3.10-3.13 | Clang 18.1.8 | Bazel 7.4.1 |
| tensorflow-2.20.0 | 3.9-3.13 | Clang 18.1.8 | Bazel 7.4.1 |
| tensorflow-2.19.0 | 3.9-3.12 | Clang 18.1.8 | Bazel 6.5.0 |
| 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 | Clang 16.0.0 | Bazel 6.1.0 |
| tensorflow-2.14.0 | 3.9-3.11 | Clang 16.0.0 | Bazel 6.1.0 |
| tensorflow-2.13.0 | 3.8-3.11 | Clang 16.0.0 | Bazel 5.3.0 |
| tensorflow-2.12.0 | 3.8-3.11 | GCC 9.3.1 | Bazel 5.3.0 |
| tensorflow-2.11.0 | 3.7-3.10 | GCC 9.3.1 | Bazel 5.3.0 |
| tensorflow-2.10.0 | 3.7-3.10 | GCC 9.3.1 | Bazel 5.1.1 |
| tensorflow-2.9.0 | 3.7-3.10 | GCC 9.3.1 | Bazel 5.0.0 |
| tensorflow-2.8.0 | 3.7-3.10 | GCC 7.3.1 | Bazel 4.2.1 |
| tensorflow-2.7.0 | 3,7-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
| tensorflow-2.6.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
| tensorflow-2.5.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 |
| tensorflow-2.4.0 | 3,6-3,8 | GCC 7.3.1 | Bazel 3.1.0 |
| tensorflow-2.3.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 3.1.0 |
| tensorflow-2.2.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 2.0.0 |
| tensorflow-2.1.0 | 2,7, 3,5-3,7 | GCC 7.3.1 | Bazel 0.27.1 |
| tensorflow-2.0.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 |
| tensorflow-1.15.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 |
| tensorflow-1.14.0 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.24.1 |
| tensorflow-1.13.1 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.19.2 |
| tensorflow-1.12.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 |
| tensorflow-1.11.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 |
| tensorflow-1.10.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 |
| tensorflow-1.9.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.11.0 |
| tensorflow-1.8.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.10.0 |
| tensorflow-1.7.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.10.0 |
| tensorflow-1.6.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.9.0 |
| tensorflow-1.5.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.8.0 |
| tensorflow-1.4.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.5.4 |
| tensorflow-1.3.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 |
| tensorflow-1.2.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 |
| tensorflow-1.1.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 |
| tensorflow-1.0.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 |
GPU
| Version | Version Python | Compilateur | Outils de construction | cuDNN | CUDA |
|---|---|---|---|---|---|
| tensorflow-2.21.0 | 3.10-3.13 | Clang 18.1.8 | Bazel 7.4.1 | 9.3 | 12,5 |
| tensorflow-2.20.0 | 3.9-3.13 | Clang 18.1.8 | Bazel 7.4.1 | 9.3 | 12,5 |
| tensorflow-2.19.0 | 3.9-3.12 | Clang 18.1.8 | Bazel 6.5.0 | 9.3 | 12,5 |
| tensorflow-2.18.0 | 3.9-3.12 | Clang 17.0.6 | Bazel 6.5.0 | 9.3 | 12,5 |
| tensorflow-2.17.0 | 3.9-3.12 | Clang 17.0.6 | Bazel 6.5.0 | 8.9 | 12.3 |
| tensorflow-2.16.1 | 3.9-3.12 | Clang 17.0.6 | Bazel 6.5.0 | 8.9 | 12.3 |
| tensorflow-2.15.0 | 3.9-3.11 | Clang 16.0.0 | Bazel 6.1.0 | 8.9 | 12.2 |
| tensorflow-2.14.0 | 3.9-3.11 | Clang 16.0.0 | Bazel 6.1.0 | 8.7 | 11.8 |
| tensorflow-2.13.0 | 3.8-3.11 | Clang 16.0.0 | Bazel 5.3.0 | 8.6 | 11.8 |
| tensorflow-2.12.0 | 3.8-3.11 | GCC 9.3.1 | Bazel 5.3.0 | 8.6 | 11.8 |
| tensorflow-2.11.0 | 3.7-3.10 | GCC 9.3.1 | Bazel 5.3.0 | 8.1 | 11.2 |
| tensorflow-2.10.0 | 3.7-3.10 | GCC 9.3.1 | Bazel 5.1.1 | 8.1 | 11.2 |
| tensorflow-2.9.0 | 3.7-3.10 | GCC 9.3.1 | Bazel 5.0.0 | 8.1 | 11.2 |
| tensorflow-2.8.0 | 3.7-3.10 | GCC 7.3.1 | Bazel 4.2.1 | 8.1 | 11.2 |
| tensorflow-2.7.0 | 3,7-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
| tensorflow-2.6.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
| tensorflow-2.5.0 | 3,6-3,9 | GCC 7.3.1 | Bazel 3.7.2 | 8.1 | 11.2 |
| tensorflow-2.4.0 | 3,6-3,8 | GCC 7.3.1 | Bazel 3.1.0 | 8.0 | 11.0 |
| tensorflow-2.3.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 3.1.0 | 7.6 | 10.1 |
| tensorflow-2.2.0 | 3,5-3,8 | GCC 7.3.1 | Bazel 2.0.0 | 7.6 | 10.1 |
| tensorflow-2.1.0 | 2,7, 3,5-3,7 | GCC 7.3.1 | Bazel 0.27.1 | 7.6 | 10.1 |
| tensorflow-2.0.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10.0 |
| tensorflow_gpu-1.15.0 | 2,7, 3,3-3,7 | GCC 7.3.1 | Bazel 0.26.1 | 7.4 | 10.0 |
| tensorflow_gpu-1.14.0 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.24.1 | 7.4 | 10.0 |
| tensorflow_gpu-1.13.1 | 2,7, 3,3-3,7 | GCC 4.8 | Bazel 0.19.2 | 7.4 | 10.0 |
| tensorflow_gpu-1.12.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
| tensorflow_gpu-1.11.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
| tensorflow_gpu-1.10.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.15.0 | 7 | 9 |
| tensorflow_gpu-1.9.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.11.0 | 7 | 9 |
| tensorflow_gpu-1.8.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.10.0 | 7 | 9 |
| tensorflow_gpu-1.7.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
| tensorflow_gpu-1.6.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.9.0 | 7 | 9 |
| tensorflow_gpu-1.5.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.8.0 | 7 | 9 |
| tensorflow_gpu-1.4.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.5.4 | 6 | 8 |
| tensorflow_gpu-1.3.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 | 6 | 8 |
| tensorflow_gpu-1.2.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.5 | 5.1 | 8 |
| tensorflow_gpu-1.1.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
| tensorflow_gpu-1.0.0 | 2,7, 3,3-3,6 | GCC 4.8 | Bazel 0.4.2 | 5.1 | 8 |
macOS
processeur
| Version | Version Python | Compilateur | Outils de construction |
|---|---|---|---|
| tensorflow-2.16.1 | 3.9-3.12 | Clang depuis Xcode 13.6 | Bazel 6.5.0 |
| tensorflow-2.15.0 | 3.9-3.11 | Clang depuis Xcode 10.15 | Bazel 6.1.0 |
| tensorflow-2.14.0 | 3.9-3.11 | Clang depuis Xcode 10.15 | Bazel 6.1.0 |
| tensorflow-2.13.0 | 3.8-3.11 | Clang depuis Xcode 10.15 | Bazel 5.3.0 |
| tensorflow-2.12.0 | 3.8-3.11 | Clang depuis Xcode 10.15 | Bazel 5.3.0 |
| tensorflow-2.11.0 | 3.7-3.10 | Clang depuis Xcode 10.14 | Bazel 5.3.0 |
| tensorflow-2.10.0 | 3.7-3.10 | Clang depuis Xcode 10.14 | Bazel 5.1.1 |
| tensorflow-2.9.0 | 3.7-3.10 | Clang depuis Xcode 10.14 | Bazel 5.0.0 |
| tensorflow-2.8.0 | 3.7-3.10 | Clang depuis Xcode 10.14 | Bazel 4.2.1 |
| tensorflow-2.7.0 | 3,7-3,9 | Clang depuis Xcode 10.11 | Bazel 3.7.2 |
| tensorflow-2.6.0 | 3,6-3,9 | Clang depuis Xcode 10.11 | Bazel 3.7.2 |
| tensorflow-2.5.0 | 3,6-3,9 | Clang depuis Xcode 10.11 | Bazel 3.7.2 |
| tensorflow-2.4.0 | 3,6-3,8 | Clang depuis Xcode 10.3 | Bazel 3.1.0 |
| tensorflow-2.3.0 | 3,5-3,8 | Clang depuis Xcode 10.1 | Bazel 3.1.0 |
| tensorflow-2.2.0 | 3,5-3,8 | Clang depuis Xcode 10.1 | Bazel 2.0.0 |
| tensorflow-2.1.0 | 2,7, 3,5-3,7 | Clang depuis Xcode 10.1 | Bazel 0.27.1 |
| tensorflow-2.0.0 | 2,7, 3,5-3,7 | Clang depuis Xcode 10.1 | Bazel 0.27.1 |
| tensorflow-2.0.0 | 2,7, 3,3-3,7 | Clang depuis Xcode 10.1 | Bazel 0.26.1 |
| tensorflow-1.15.0 | 2,7, 3,3-3,7 | Clang depuis Xcode 10.1 | Bazel 0.26.1 |
| tensorflow-1.14.0 | 2,7, 3,3-3,7 | Clang depuis Xcode | Bazel 0.24.1 |
| tensorflow-1.13.1 | 2,7, 3,3-3,7 | Clang depuis Xcode | Bazel 0.19.2 |
| tensorflow-1.12.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.15.0 |
| tensorflow-1.11.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.15.0 |
| tensorflow-1.10.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.15.0 |
| tensorflow-1.9.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.11.0 |
| tensorflow-1.8.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.10.1 |
| tensorflow-1.7.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.10.1 |
| tensorflow-1.6.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.8.1 |
| tensorflow-1.5.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.8.1 |
| tensorflow-1.4.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.5.4 |
| tensorflow-1.3.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.4.5 |
| tensorflow-1.2.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.4.5 |
| tensorflow-1.1.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.4.2 |
| tensorflow-1.0.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.4.2 |
GPU
| Version | Version Python | Compilateur | Outils de construction | cuDNN | CUDA |
|---|---|---|---|---|---|
| tensorflow_gpu-1.1.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.4.2 | 5.1 | 8 |
| tensorflow_gpu-1.0.0 | 2,7, 3,3-3,6 | Clang depuis Xcode | Bazel 0.4.2 | 5.1 | 8 |