Tensorflow, le framework d’intelligence artificielle de Google, se décline en deux versions : la première utilise votre processeur pour faire les calculs (c’est la version de base), tandis que la seconde s’appuie sur votre carte graphique (c’est la version GPU).

On va voir aujourd’hui comment les installer (car y arriver du premier coup relève de l’exploit pour le GPU) sans difficulté !

NB : vous trouverez en fin d’article un diagramme résumant l’installation de Tensorflow GPU.

Tensorflow CPU vs GPU : quelle version choisir ?

Dans un ordinateur, le processeur (aussi appelé le CPU = Central Processing Unit) est le composant le plus important car c’est là où sont traitées et exécutées toutes les instructions.

La carte graphique (GPU = Graphic Processing Unit), pour sa part, est utilisée dans le rendu graphique de Windows et des applications, de par sa très forte capacité à calculer (additions, multiplications, etc…) en parallèle.

Or, la très (très) grande majorité des algorithmes d’intelligence artificielle et de deep learning sont, justement, distribués : des calculs en parallèles permettent d’en arriver à bout plus rapidement ! L’écart entre un CPU et un GPU qui traitent le même algorithme peut être de 90% en temps !

Vitesse d'entraînement d'une IA sur CPU vs GPU

Dans la suite nous allons donc voir comment installer les deux versions de Tensorflow suivant vos besoins, mais pour vous donner quelques exemples :

  • Entraîner une IA de génération de tableaux dans le style de Van Gogh = 20h sur CPU, 1h sur GPU
  • Générer un tableau de Van Gogh = 7min sur CPU et 7s sur GPU
  • Détecter une personne avec une caméra (reconnaissance faciale) = 17s sur CPU et 0.3s sur GPU

Tensorflow GPU est en moyenne 10x plus rapide que cpu dans 99% des cas

Remarques :

  • Pour l’entraînement comme pour l’utilisation (prédiction), la version GPU est la plus rapide
  • Nous vous conseillons donc d’installer Tensorflow GPU (si possible)
  • Mais attention, toutes les cartes graphiques ne fonctionnent pas avec Tensorflow GPU, donc vous serez peut-être contraints d’utiliser Tensorflow CPU !

Quelques pré-requis

Installer Python

Que ferait-on sans Python ? Pour la suite nous allons utiliser Python 3, qui est probablement installé sur votre ordinateur.

Si ce n’est pas le cas, cliquez simplement sur « Download Python 3.7.1 » (le numéro de la version sera probablement supérieur pour vous), depuis le site suivant.

Ensuite, installez-le normalement en cochant bien la case « ajouter Python au PATH » (sinon, il faudra l’ajouter vous-même en allant dans les variables d’environnement système et en modifiant le PATH pour y ajouter le chemin de python/bin).

Ouvrez une console et écrivez

si tout se passe bien vous devriez avoir quelque chose comme ça :

console python

On voit donc que j’utilise la version 3.6.6, et les trois > indiquent que je peux saisir du code Python ici. Dans la suite de ce tutoriel, lorsqu’on écrira « import tensorflow », ce sera justement après ces >>>.

Est-ce que votre carte graphique est compatible ?

cuda gpu
Quelques exemples de cartes compatibles

Pour commencer, seules les cartes NVIDIA sont compatibles avec Tensorflow GPU.

Ensuite, seules les cartes de la page suivante le sont : CUDA GPU. En ce qui me concerne, j’utilise une GeForce GTX 970.

Pour connaître votre modèle de carte graphique, dans la barre de recherche Windows (en bas à gauche) écrivez « exécuter », puis dans la fenêtre qui s’ouvre, tapez « dxdiag ».

Vous devriez alors avoir une fenêtre dans laquelle vous trouverez le nom de la carte graphique :

dxdiag

Si votre carte n’a pas été mise à jour depuis longtemps, nous vous conseillons de le faire, soit en téléchargeant vous-même les pilotes qui conviennent, soit grâce à Nvidia GeForce Experience. Il s’agit d’un logiciel qui vous demandera un compte (gratuit) Nvidia et qui se chargera des mise à jour de votre carte graphique.

Installation sous Windows de Tensorflow GPU (carte graphique)

1) Désinstallation de Tensorflow

Il est probable que vous n’ayez rien à faire dans cette partie, mais pour éviter tout conflit, le mieux est de s’assurer qu’il n’y a pas déjà Tensorflow sur votre ordinateur.

  • Ouvrez une invite de commande et lancez les deux lignes suivantes :

  • Ouvrez la liste des programmes de votre ordinateur, et désinstallez tout ce qui s’appelle « NVIDIA CUDA … ». Par exemple, Development, Documentation, Runtime, Samples, Visual Studio Integration…

Remarque : tensorflow et tensorflow-gpu ne sont pas incompatibles, mais pour éviter un certain nombre d’erreurs, il vaut mieux les désinstaller tous les deux, quitte à réinstaller tensorflow une fois tensorflow-gpu opérationnel.

2) Installation de Tensorflow GPU

Dans l’invite de commande, lancez cette fois

Une fois le module installé, vous avez tensorflow GPU !!

Mais ne crions pas victoire, pour qu’il marche, il va falloir installer « cuda » et « cudnn » qui lui permettront de prendre le contrôle de la carte graphique et d’effectuer les calculs d’intelligence artificielle.

Seulement voilà… il est très compliqué d’installer les bonnes versions de ces logiciels (versions qui dépendent de votre version de tensorflow et de votre carte graphique). Heureusement, les erreurs Tensorflow vont nous guider…

3) Vers votre première erreur : CUDA

Dans l’invite de commande, saisissez et validez :

Puis après les trois chevrons >>> écrivez et validez :

Vous devriez avoir l’erreur suivante « ImportError: DLL load failed: Le module spécifié est introuvable. »

Cela signifie simplement que CUDA n’est pas installé.

Installation de CUDA

A l’heure actuelle, il y a deux versions principales de CUDA : la 9 et la 10. On va commencer par essayer d’installer la 10, mais il faut savoir qu’elle ne marche qu’avec les toutes dernières cartes graphiques. Par exemple, ma GTX970 ne marche qu’avec CUDA 9, donc pour gagner du temps, installez la version 9 si vous pensez bien faire, sinon testez la 10 et vous verrez bien (cf partie suivante) !

Allez sur le site de NVIDIA et téléchargez CUDA 9.0 ou 10.0. Les installeurs pèsent environ 1Go (vous pouvez extraire n’importe où, mais le répertoire d’installation est important car il faut éviter les caractères accentués, spéciaux et les espaces dans le chemin !).

Dans la suite, on va supposer que vous avez installé CUDA dans D:\Tools\CUDA\v9.0 (si vous avez CUDA 10, pensez à bien changer les chemins dans la suite).

Variables d’environnement

Dans les variables d’environnement système, ajoutez à la fin du PATH :

D:\Tools\CUDA\v9.0\bin
D:\Tools\CUDA\v9.0\libnvvp
D:\Tools\CUDA\v9.0\extras\CUPTI\libx64

Ajoutez également deux variables CUDA_PATH et CUDA_PATH_V9_0 dont la valeur est :

D:\Tools\CUDA\v9.0

Vérification de l’installation

Dans une nouvelle invite de commande (vous pouvez fermer l’ancienne), écrivez simplement

Vous obtiendrez alors une ligne semblable à « CUDA-MEMCHECK version 9.0.176 ID:(44) »

Autres erreurs possibles

Dans quelques cas, il est possible que vous ayez une autre erreur. Sans pouvoir être exhaustif, je vais vous donner les deux plus probables (pour les autres, il faudra chercher sur Internet ou Stack Overflow).

  1. AttributeError: module ‘tensorflow’ has no attribute ‘Session’ : votre installation de tensorflow est corrompue. Il suffit de désinstaller complètement tensorflow et tensorflow-gpu, puis de réinstaller tensorflow-gpu
  2. Problème générique, probablement en rapport avec tensorboard : tensorflow utilise tensorboard, qui peut se montrer « capricieux » parfois. Il faut impérativement avoir tensorboard dans la même version que tensorflow, et désinstaller les versions postérieures ! Le plus simple est donc de faire, si vous avez la version 1.10.0 de tensorflow (gpu ou non) :

4) Vers votre deuxième erreur

Ouvrez une invite de commande et tapez « python » puis « import tensorflow ». Plusieurs erreurs sont possibles à ce niveau-là…

ImportError: DLL load failed: Le module spécifié est introuvable.

Soit CUDA n’a pas été installé (mais si le memcheck a marché, ce n’est pas ça) soit… la version de tensorflow GPU installée n’est pas compatible.

La solution est simple : désinstaller tensorflow-gpu et mettre une version antérieure à la place.

Pour désinstaller, faites :

Puis pour mettre une version précise (par exemple la 1.10.0 que j’utilise et qui marche bien) :

Vous pouvez alors relancer python et faire import tensorflow pour avoir une autre erreur !

ImportError: Could not find ‘cudart64_90.dll’

La version de CUDA installée n’est pas compatible avec votre ordinateur. Lorsque j’ai eu cette erreur, j’avais mis CUDA 10, et Tensorflow me dit qu’il faut CUDA 9.0 en 64bits !

Vous pouvez donc désinstaller complètement CUDA puis installer la version indiquée dans la console (ici, la 9 en 64 bits). Pensez à bien changer les variables d’environnement avec la nouvelle installation.

Vous pouvez alors relancer python et faire import tensorflow pour avoir une autre erreur !

Voici le message d’erreur complet de ce paragraphe :

ImportError: Could not find ‘cudnn64_7.dll’

On y est presque, c’est la dernière erreur possible ! Elle vous indique que vous n’avez pas installé cuDNN, ce qui est justement notre prochaine action. Notez, c’est indiqué dans le message d’erreur, qu’il vous faudra la version 7 en 64bits…

Allez sur le site de NVIDIA et connectez-vous à votre compte (ou créez-en un gratuit).

Choisissez la version de cuDNN qui correspond à votre version de CUDA (la 9.0 pour ma part), ainsi qu’à votre système d’exploitation (Windows 10 par exemple).

cudnn
Téléchargement de cuDNN 7 pour CUDA 9.0

Une fois le zip téléchargé, il va falloir le fusionner avec votre répertoire CUDA.

Ouvrez le répertoire d’installation de CUDA : D:\Tools\CUDA\v9.0

Dans le zip, vous avez le répertoire « cuda » qui contient les sous-répertoires bin, includes et lib. Prenez ces 3 répertoires du zip et décompressez-les dans le dossier d’installation de CUDA. L’objectif est de fusionner ces 3 répertoires avec ceux de CUDA (s’il y a des conflits, prenez la version du zip).

Une fois ceci fait, vous pouvez ouvrir une console, saisir « python » puis « import tensorflow » et, après quelques secondes, les 3 chevrons >>> devraient réapparaître sans erreur !

python avec tensorflow
Tensorflow est chargé par Python

Vous pouvez vous rendre à la dernière partie pour valider que tout est OK !

Voici le message d’erreur complet de ce paragraphe :

Résumé de l’installation de Tensorflow GPU

tensorflow gpu flowchart

Installation sous Windows de Tensorflow CPU (processeur)

Comparé à la version ci-dessus, pour installer Tensorflow CPU c’est très simple.

Ouvrez une invite de commande et lancez

et voilà !

Tester la version de Tensorflow utilisée

Félicitations ! Vous avez réussi à installer Tensorflow !

Maintenant, la question se pose : est-ce que vous utilisez Tensorflow CPU ou Tensorflow GPU ?

Pour savoir, ouvrez une invite de commande et saisissez

Ensuite, après les trois chevrons >>> importez tensorflow (en lui donnant un alias pour simplifier l’écriture) :

Enfin, lancez la commande suivante qui permettra d’afficher ce qu’utilise Tensorflow pour tourner sur votre machine :

Si vous avez la version GPU, vous devriez avoir les informations suivantes :

tensorflow gpu device found
La carte graphique est détectée (et utilisée) par Tensorflow

Sinon, vous aurez un message concernant votre CPU.

Pour conclure, si vous voulez forcer Tensorflow a utiliser le CPU ou le GPU (et que les deux versions sont installées), voici la commande (pour désactiver le GPU par exemple), qui repose sur le « device_count » :

 

PARTAGER
Article précédentBrainNet : nos cerveaux en réseau !
Lambert R.
Ingénieur d'Etudes et Data Scientist depuis plusieurs années, mes travaux et mon parcours scolaire (master en mathématiques fondamentales) m'ont amené aux abords de l'intelligence artificielle. Aujourd'hui j'écris des articles en data science, deep learning, big data et intelligence artificielle pour PenseeArtificielle.fr, dans le but de promouvoir et vulgariser les promesses d'avenir qu'offrent ces domaines de pointe.