Vous avez un PC de gamer qui traîne? Et si on y installait TensorFlow pour le transformer en station de machine learning?
Après une courte introduction au deep learning, vous apprendrez à
Vous aurez besoin:
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:
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.
D'abord, merci de vous assurer à nouveau que vous avez tout ce qu'il faut avant de vous lancer dans l'installation:
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:
Ensuite, vérifiez que votre GPU est bien supporté par NVidia
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.
À 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
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):
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:
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
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
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!
Rejoignez ma mailing list pour plus de posts et du contenu exclusif: