Aller au contenu

Installation de TensorFlow

Dans cet article

TensorFlow est une plateforme open-source pour l'apprentissage automatique et l'entraînement de réseaux de neurones profonds, développée par Google. Avec TensorFlow, vous pouvez créer, entraîner et utiliser des réseaux de neurones complexes à l'aide d'une API conviviale en Python.

Cette plateforme prend en charge à la fois les algorithmes d'apprentissage automatique traditionnels, tels que la régression linéaire et logistique, ainsi que des architectures plus avancées, notamment les réseaux de neurones convolutifs (Convolutional Neural Networks, CNN) et les réseaux de neurones récurrents (Recurrent Neural Networks, RNN).

Installation de TensorFlow sur Linux

Cette instruction convient aux systèmes d'exploitation suivants : Ubuntu 22.04, et est vérifiée pour les versions Python : Python 3.10.

Remarque

Si vous prévoyez d'utiliser l'accélération GPU, veuillez installer les pilotes NVIDIA et CUDA conformément à cette instruction.

  1. Installer Python :

    sudo apt install python3.10
    

    Sous Ubuntu 22.04, cette version est installée par défaut, nous ne recommandons donc pas d'installer une version plus récente.

  2. Installation des bibliothèques système pour TensorRT :

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get install tensorrt
    
  3. Créer un environnement virtuel pour Python :

    python3 -m venv venv
    
  4. Activer l'environnement virtuel :

    source venv/bin/activate
    

    Après une activation réussie, l'invite de commande inclura le nom de l'environnement virtuel entre parenthèses :

    (venv) user@49069:~$
    

    Remarque

    Vous pouvez créer autant d'environnements virtuels que vous le souhaitez et installer différentes bibliothèques (y compris simultanément, mais cela peut parfois causer des conflits).

  5. Installation des liaisons pour TensorRT :

    python3 -m pip install wheel
    python3 -m pip install --pre --upgrade tensorrt
    

    Pour vérifier l'installation, nous pouvons exécuter Python dans la console et exécuter le script suivant :

    import tensorrt
    print(tensorrt.__version__)
    assert tensorrt.Builder(tensorrt.Logger())
    

    En cas d'installation réussie, la sortie sera la suivante :

    (tensorflow) user@49069:~/gpu$ python
    Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import tensorrt
    >>> print(tensorrt.__version__)
    10.0.0b6
    >>> assert tensorrt.Builder(tensorrt.Logger())
    >>> import tensorrt_lean as trt
    >>> print(trt.__version__)
    10.0.0b6
    >>> assert trt.Runtime(trt.Logger())
    >>> import tensorrt_dispatch as trt
    >>> print(trt.__version__)
    10.0.0b6
    >>> assert trt.Runtime(trt.Logger())
    >>>
    
  6. Installation de TensorRT version 8.6.1.

    wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/tars/TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
    tar -xzvf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz
    
  7. Installation de la bibliothèque TensorFlow avec prise en charge du GPU :

    pip install tensorflow[and-cuda]
    
  8. Quitter l'environnement virtuel :

    deactivate
    
  9. Créer un script pour exécuter TensorFlow :

    echo '#!/bin/bash' > tensorflow.sh
    echo 'source venv/bin/activate' >> tensorflow.sh
    echo 'export CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> tensorflow.sh
    echo 'export LD_LIBRARY_PATH=$CUDNN_PATH/lib:/usr/local/cuda/lib64' >> tensorflow.sh
    echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/TensorRT-8.6.1.6/lib' >> tensorflow.sh
    chmod +x tensorflow.sh
    

Exécution de TensorFlow

Pour exécuter TensorFlow dans un environnement virtuel avec les variables de bibliothèque spécifiées depuis le répertoire racine de votre répertoire personnel, utilisez la commande :

. tensorflow.sh

Vérification de l'installation de TensorFlow

Pour vérifier le fonctionnement et la prise en charge du GPU de la bibliothèque, lancez le programme Python suivant dans la console :

import tensorflow as tf
print(tf.reduce_sum(tf.random.normal([1000, 1000])))
print(tf.config.list_physical_devices('GPU'))

En cas d'installation réussie, vous recevrez une sortie similaire à celle-ci, affichant l'utilisation de votre GPU.

(venv) user1@49069:~$ python
Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
nt(tf.config.list_physical_devices('GPU'))
2024-04-22 23:39:54.472502: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
>>> print(tf.reduce_sum(tf.random.normal([1000, 1000])))
2024-04-22 23:39:55.810888: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1928] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 22282 MB memory:  -> device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:07:00.0, compute capability: 8.9
tf.Tensor(332.5041, shape=(), dtype=float32)
>>> print(tf.config.list_physical_devices('GPU'))
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
>>>

De plus, vous pouvez télécharger et exécuter le script Python de test pour l'entraînement d'un réseau de neurones 2c_nn_mnist_customtrain.py depuis ce dépôt GitHub.

Une fois son exécution terminée, vous devriez recevoir une sortie similaire à celle-ci :

`bash (venv) user1@49069:~$ python ./2c_nn_mnist_customtrain.py 2024-04-23 10:35:25.832754: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations. To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags. 2024-04-23 10:35:28.404381: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1928] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 22282 MB memory: -> device: 0, name: NVIDIA GeForce RTX 4090, pci bus id: 0000:07:00.0, compute capability: 8.9 WARNING: All log messages before absl::InitializeLog() is called are written to STDERR I0000 00:00:1713861338.172126 21279 service.cc:145] XLA service 0x7f36a3bd2ec0 initialized for platform CUDA (this does not guarantee that XLA will be used). Devices: I0000 00:00:1713861338.172187 21279 service.cc:153] StreamExecutor device (0): NVIDIA GeForce RTX 4090, Compute Capability 8.9 2024-04-23 10:35:38.180648: I tensorflow/compiler/mlir/tensorflow/utils/dump_mlir_util.cc:268] disabling MLIR crash reproducer, set env var `MLIR_CRASH_REPRODUCER_DIRECTORY` to enable. 2024-04-23 10:35:38.207205: I external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:465] Loaded cuDNN version 8902 I0000 00:00:1713861338.355523 21279 device_compiler.h:188] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process. 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9022 time: 14.9 test-acc: 0.932 (error: 6.75%) 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9474 time: 4.74 test-acc: 0.953 (error: 4.71%) 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9628 time: 4.83 test-acc: 0.963 (error: 3.67%) 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9734 time: 4.86 test-acc: 0.968 (error: 3.25%) 1874/1875 |||||||||||||||||||||||||||||||| acc: 0.9798 time: 4.9 test-acc: 0.97 (error: 3.04%)