Installer TensorFlow sous Windows pour le Deep Learning

Vous avez un PC de gamer qui traîne? Et si on y installait TensorFlow pour le transformer en station de machine learning?

TensorFlow and Windows logos
TensorFlow sous Windows

À propos de ce tutoriel

Après une courte introduction au deep learning, vous apprendrez à

  • installer TensorFlow (la librairie de deep learning de Google) sous Windows

Vous aurez besoin:

  • d'un PC sous Windows 10. Si vous avez Windows 7, je pense que ça marchera quand même, mais je n'ai pas testé. Si vous le faites, dîtes-nous dans les commentaires!
  • d'une carte graphique NVidia dans le PC. J'ai une GeForce GTX 970, qui est plutôt vieille. Si vous voulez vous acheter une carte, je vous conseille la GeForce GTX 1050 Ti, pour environ 200 euros. Ce tutoriel ne marchera pas avec une carte graphique d'une autre marque.

Le deep learning c'est quoi?

Dans mon tutoriel sur la reconnaissance de chiffres manuscrits avec scikit-learn , nous avons vu qu'un réseau de neurones pas bien futé, avec ses 15 neurones qui se courent après sur une seule couche cachée, peut être entraîné pour classifier avec une bonne précision des chiffres manuscrits dans dix catégories.

Mais que fait-on si les images deviennent plus complexes? Et si on doit classifier les images dans des centaines ou des milliers de catégories?

En fait, actuellement, le machine learning est très souvent basé sur le deep learning. Deep veut dire profond, et ce qui est profond, c'est le réseau. Il comprend souvent une dizaine de couches, avec des milliers de neurones par couche.

Entraîner des réseaux profonds n'est devenu possible qu'au cours des dix dernières années, après que les gens aient réalisé que l'entraînement pouvait se faire très rapidement sur GPU (Graphical Processing Unit, ou processeur graphique). Or, le développement des GPUs avait été poussé durant des années par l'industrie du jeu vidéo pour fournir des cartes graphiques de plus en plus puissantes aux joueurs. Il était donc facile de se procurer le matériel nécessaire.

De nos jours, il est possible de faire du deep learning sur des cartes graphiques grand public comme la GeForce GTX 1050 Ti, qui coûte 200 euros. Et si vous avez un peu plus d'argent à mettre là-dedans, vous pouvez vous faire plaisir avec la NVidia Tesla V100, que l'on peut se procurer pour la modique somme de 6000 euros.

Dans un article de 2012 cité plus de 33 000 fois, Alex Krizhevsky et al ont montré qu'un réseau de neurones profond convolutionnel avec 500 000 neurones était capable de classifier des images dans 1000 catégories avec précision:


(Gauche) Huit images de test avec les cinq catégories considérées comme les plus probables par le réseau de neurones. La catégorie correcte est écrite en dessous de l'image, et la probabilité assignée à la catégorie correcte est signalée par une barre rouge (si elle fait effectivement partie du top 5). (Droite) Cinq images de test dans la première colonne. Les colonnes suivantes montrent les six images d'entraînement qui sont considérées comme étant les plus ressemblantes par le réseau de neurones.

Peut-on essayer de mettre en place nous-mêmes un réseau de neurones profond chez soi?

Oui! Mais pour cela, nous avons besoin d'une carte graphique et d'une manière de l'utiliser pour faire du machine learning.

Étape 1 : Les pré-requis

D'abord, merci de vous assurer à nouveau que vous avez tout ce qu'il faut avant de vous lancer dans l'installation:

  • un PC sous Windows 10, ou éventuellement Windows 7;
  • une carte graphique NVidia dans le PC.

Si vous ne connaissez pas votre modèle de carte graphique, on va le vérifier. Cliquez sur le menu démarrer de Windows, et commencez à taper "gestionnaire de périphériques". Lancez-le. Ensuite, cliquez sur adaptateurs graphiques (j'espère que c'est bien ça mon Windows est en anglais) pour voir le nom de votre carte:

Identification de ma carte graphique dans le gestionnaire de périphériques de Windows 10

Ensuite, vérifiez que votre GPU est bien supporté par NVidia

List des GPUs compatibles CUDA

On voit que ma petite GeForce ne devrait finalement pas avoir à rougir face à la grosse Tesla V100, qui à une capacité de calcul de 7.0!

Cependant, un point crucial pour le deep learning sur GPU est la quantité de mémoire disponible sur la carte. En effet, plus votre réseau sera complexe et plus vous aurez besoin de RAM. Et là, la V100 est clairement gagnante avec ses 16 GO de RAM, par rapport à ma GeForce et ses 4 GO.

Étape 2 : Les drivers

À ce stade, vous avez une belle carte graphique qui va bien. Mais votre ordinateur ne pourra rien faire avec s'il ne peut pas lui parler. Et c'est à ça que servent les drivers.

Merci de télécharger et d'installer les derniers drivers pour votre carte graphique NVidia.

Pour ce tuto, j'utilise actuellement la version de driver 397.93. Il vous faut au moins la version 384.X

Étape 3 : Le logiciel

Pour faire du deep learning avec votre carte, vous aurez besoin des logiciels suivants (ne les installez pas j'ai une solution plus simple pour vous juste après):

  • 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

Installer CUDA et cuDNN est loin d'être facile.

Heureusement, Anaconda vient à nouveau à la rescousse. Il va nous permettre d'installer tout ça rapidement et sans se fatiguer.

C'est parti.

Si vous avez suivi mon tuto sur les chiffres manuscrits , Anaconda est déjà installé sur votre système.

Sinon, téléchargez Anaconda pour votre système:

  • Choisissez la version pour python 2.X ou 3.X.
  • Si vous utilisez Windows ou Linux, prenez garde à choisir l'outil d'installation 64 bits si vous avez un système 64 bits.

Lancez l'outil d'installation et installez Anaconda.

Lancez l'application Anaconda Prompt.

Dans le prompt, créez un nouvel environnement anaconda en tapant:

conda create --name tf_gpu tensorflow-gpu

Activez cet environnement:

conda activate tf_gpu

Et installez quelques packages supplémentaires dont vous aurez besoin par la suite:

conda install jupyter matplotlib scikit-learn

Étape 4 : Test !

Nous avons maintenant tout ce qu'il nous faut.

Lancez Anaconda Navigator, et allez dans l'onglet Environments. Vous devriez y voir votre environnement tf_gpu. Sélectionnez-le.

Cliquez sur la flèche à droite et sélectionnez "Open with IPython".

Dans le prompt IPython, entrez:

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

Si tout va bien, vous devriez obtenir un message similaire à celui-ci (et sinon dîtes-moi dans les commentaires):

2019-01-25 09:59:36.191801: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
2019-01-25 09:59:36.395983: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:
name: GeForce GTX 970 major: 5 minor: 2 memoryClockRate(GHz): 1.253
pciBusID: 0000:01:00.0
totalMemory: 4.00GiB freeMemory: 3.30GiB
2019-01-25 09:59:36.402795: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2019-01-25 09:59:37.896065: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-01-25 09:59:37.899787: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0
2019-01-25 09:59:37.901547: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N
2019-01-25 09:59:37.905082: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 3009 MB memory) -> physical GPU (device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0, compute capability: 5.2)
Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0, compute capability: 5.2
2019-01-25 09:59:37.913059: I tensorflow/core/common_runtime/direct_session.cc:307] Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0, compute capability: 5.2

Et maintenant?

Dans ce tuto, vous avez appris comment installer TensorFlow sur votre PC de gamer 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: