Installer TensorFlow sous Linux pour le Deep Learning

Vous avez un PC Linux avec une carte graphique NVidia? Transformons-le en station de deep learning.

Logos TensorFlow et Linux
Installer TensorFlow sous Linux

Dans ce tutorial, nous allons voir comment installer facilement TensorFlow sur un PC Linux pour en faire une station de deep learning.

Pour une introduction rapide au deep learning, voici mon post sur l' installation de TensorFlow sous Windows .

Prérequis

Il vous fraudra:

  • Un PC sous Ubuntu . J'ai utilisé Ubuntu 16.04 LTS, mais une version plus récente pourrait convenir. Cependant, le tuto ne marchera pas avec d'autres versions de Linux.
  • Une carte graphique NVidia dans le PC. Vous pouvez vérifier que votre carte est bien supportée par NVidia . Il vous faut absolument une carte NVidia.

Étape 1 : Les drivers

Votre PC ne pourra rien faire de votre carte NVidia si il n'est pas en mesure de lui parler. C'est là que les drivers interviennent.

Pour installer TensorFlow, il vous faudra des drivers NVidia de la version 384.X ou d'une version plus récente.

Nous allons maintenant installer les drivers les plus récents. D'abord, ajoutons un dépôt à apt, d'où nous récupérerons le package contenant les drivers:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt upgrade

Regardons quel est le driver recommandé:

ubuntu-drivers devices

Ça me donne:

== /sys/devices/pci0000:16/0000:16:00.0/0000:17:00.0 ==
modalias : pci:v000010DEd00001B06sv00001028sd00003600bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-396 - third-party free
driver   : nvidia-415 - third-party free recommended
driver   : nvidia-390 - third-party free
driver   : xserver-xorg-video-nouveau - distro free builtin
driver   : nvidia-384 - third-party non-free
driver   : nvidia-410 - third-party non-free

Choisissez le driver recommandé et installez-le

sudo apt install nvidia-415

Redémarrez le PC, et vérifiez que le driver est effectivement utilisé:

nvidia-smi

Vous devriez obtenir quelque chose comme ça:

Fri Jan 25 18:30:34 2019       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 415.27       Driver Version: 415.27       CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:17:00.0 Off |                  N/A |
| 23%   33C    P8    17W / 250W |      2MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:65:00.0  On |                  N/A |
| 23%   34C    P8    16W / 250W |    296MiB / 11176MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    1      1491      G   /usr/lib/xorg/Xorg                           132MiB |
|    1      2190      G   compiz                                       161MiB |
+-----------------------------------------------------------------------------+

Comme vous pouvez le voir, la version du driver est correcte.

Si vous voulez faire plus de tests et voir quelques jolis affichages 3D, vous pouvez utiliser la suite de tests phoronix .

Étape 2 : Le Logiciel

Pour faire du deep learning avec votre carte, vous aurez besoin des logiciels suivants:

  • CUDA : architecture de calcul parallèle de NVidia. CUDA vous permettra d’utiliser les nombreux coeurs de votre GPU pour faire des calculs mathématiques
  • cuDNN : librairie spécifique pour les réseaux de neurones profonds avec CUDA
  • TensorFlow : librairie de deep learning de Google
  • Keras : super interface pour utiliser TensorFlow

Mais installer CUDA et cuDNN manuellement peut être vraiment pénible. Heureusement, nous n'aurons pas à en passer par là.

Nous allons plutôt utiliser Anaconda.

Téléchargez Anaconda pour votre système:

  • Choisissez la version pour python 2.X ou 3.X.
  • Soyez sur de choisir l'installation 64 bits.

Installez TensorFlow et keras

conda install tensorflow-gpu keras

Étape 3 : Test!

Et finalement, testez votre installation:

python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"

J'obtiens:

2019-01-25 18:39:59.281394: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 AVX512F FMA
2019-01-25 18:39:59.475540: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties: 
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582
pciBusID: 0000:17:00.0
totalMemory: 10.92GiB freeMemory: 10.76GiB
2019-01-25 18:39:59.617848: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 1 with properties: 
name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate(GHz): 1.582
pciBusID: 0000:65:00.0
totalMemory: 10.91GiB freeMemory: 10.47GiB
2019-01-25 18:39:59.618681: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0, 1
2019-01-25 18:40:00.021667: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-01-25 18:40:00.021703: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0 1 
2019-01-25 18:40:00.021708: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N Y 
2019-01-25 18:40:00.021711: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 1:   Y N 
2019-01-25 18:40:00.022288: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10407 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:17:00.0, compute capability: 6.1)
2019-01-25 18:40:00.022606: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:1 with 10126 MB memory) -> physical GPU (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:65:00.0, compute capability: 6.1)
tf.Tensor(629.1958, shape=(), dtype=float32)

Et ensuite?

Dans ce tuto, vous avez appris comment installer TensorFlow sur un PC Linux facilement avec l'aide d'Anaconda.

La prochaine fois, nous verrons comment l'utiliser pour faire un peu de deep learning.


N'hésitez pas à me donner votre avis dans les commentaires ! Je répondrai à toutes les questions.

Et si vous avez aimé cet article, vous pouvez souscrire à ma newsletter pour être prévenu lorsque j'en sortirai un nouveau. Pas plus d'un mail par semaine, promis!

Retour


Encore plus de data science et de machine learning !

Rejoignez ma mailing list pour plus de posts et du contenu exclusif:

Je ne partagerai jamais vos infos.
Partagez si vous aimez cet article: