Il est tout à fait possible de développer des applications de deep-learning sur Windows, par exemple en utilisant Python (3.7), Keras (2.3.1) et Tensorflow (1.15).
Je vous montre ici comment j’ai installé ce type de plateforme sur mon PC dont la configuration est la suivante :
- Windows 10
- CPU Intel 6850K (6 cores)
- GPU Geforce GTX 1080 Ti
- 64 Go de RAM (G-skill)
- Carte mère X99 DELUXE 2
Prérequis : il faut avoir Microsoft Visual Studio 15 (ou supérieur) installé. Commencez par cela si ce n’est pas le cas.
Les étapes
Tout d’abord j’ai fait le choix d’utiliser Anaconda 3 et Spyder, qui permettent d’automatiser et de simplifier pas mal d’étapes.
Pour cela il suffit de télécharger une version récente ; pour moi au moment de l’installation il s’agissait de celle-ci, avec Python 3.7 : Anaconda3-2020.02-Windows-x86_64.exe.
Un fois Anaconda installé, lancer le prompt conda puis entrer :
conda update conda
puis :
conda update –all
pour mettre à jour ce qui doit l’être.
Comme je veux utiliser ma carte graphique, je télécharge et installe CUDA (version 10.1), puis cuDNN (version 7.6.4, fichier « cudnn-10.1-windows10-x64-v7.6.4.38.zip ») dans le CUDA-PATH (3 fichiers à copier respectivement dans les répertoires bin, include, lib).
Ensuite, création puis activation d’une variable d’environnement que j’appelle tf pour tensorflow. Dans le prompt conda, taper :
conda create -n tf python=3.7 numpy scipy matplotlib spyder pandas
puis :
activate tf
Il est alors temps d’installer tensorflow, version GPU. Dans conda, taper :
pip install tensorflow-gpu==1.15
(il y a toujours possibilité de faire une autre installation par exemple avec tensorflow2.1 en CPU en créant une autre variable d’environnement par exemple tf2).
Passons maintenant à keras :
pip install keras
Cela installe la version 2.3.1 (du moins à l’époque où j’ai installé l’ensemble…).
Et là surprise, ça ne marche pas, pour cause de dll CUDA introuvables, alors qu’elles sont bien présentes ! En fait tensorflow1.15 a encore besoin de la version 10.0 de CUDA alors que nous avons installé la version 10.1. Il faut donc aller chercher quelques dll sur le net :
- cudart64_100.dll
- cublas64_100.dll
- cufft64_100.dll
- curand64_100.dll
- cusolver64_100.dll
- cuparse64_100.dll
et les copier dans le fichier bin de votre CUDA_PATH.
Et là, enfin…tout marche !
Concrètement, il suffit de lancer Anaconda, puis de sélectionner « tf » (la variable d’environnement que l’on a définie) dans le menu déroulant. Ainsi, tout ce qui est lancé depuis Anaconda le sera avec la config que nous venons d’installer.
Par exemple vous pouvez lancer Spyder pour éditer et lancer vos codes Python, et ce sera votre carte GPU qui fera le travail puisque dans tf nous avons la version GPU de tensorflow1.15.
Dans Spyder vous pouvez quand même demander à ce que ce soient vos CPUs qui fonctionnent. Pour cela, lancez ces deux commandes dans la console IPython :
import os
puis
os.environ[‘CUDA_VISIBLE_DEVICES’] = ‘-1’
Cela désactive le GPU aux yeux de CUDA et donc de tensorflow, qui va lancer les process en mode CPU.
Vous pouvez aussi écrire ces 2 commandes directement dans votre code, tout au début, avant d’importer keras :

Pour vous remettre en mode GPU, remplacer le ‘-1’ par ‘0’. Par défaut, 0 est la dénomination du premier GPU installé sur votre ordinateur.
Exemple d’application
Nous allons tester les données classiques du mnist (reconnaissance de lettres manuscrites) sans et avec GPU. Voici le code sans GPU, tapé directement dans Spyder :

N’oubliez pas il suffit de mettre ‘0’ pour lancer le test en mode GPU.
Voici le résultat :

Maintenant en mode GPU :

Ce qui fait une accélération d’un facteur 10 environ, avec un temps de calcul total de plus de 8 minutes en CPU contre moins de 50 secondes en GPU. Cela peut sembler modeste…mais avec la carte graphique, vous avez le temps de tester 10 versions de votre programme contre une seule réalisation en CPU. Dit comme ça, c’est moins modeste, surtout dans le monde de l’apprentissage profond où l’optimisation des paramètres exige de nombreux essais.
Pour finir, voici quelques sites qui m’ont aidés pour faire l’installation ci-dessus :
https://towardsdatascience.com/setup-an-environment-for-machine-learning-and-deep-learning-with-anaconda-in-windows-5d7134a3db10
https://medium.com/@aiii/machine-learning-deep-learning-toolkit-installation-on-windows-10-65a8b3347b18
https://github.com/philferriere/dlwin
Sans oublier trois conseils :
1°) n’ayez pas peur d’installer les dernières versions validées de chaque élément (keras, tensorflow…) en prenant le temps de consulter les sites de ces éléments qui sont très bien faits. Ils vous indiqueront les compatibilités de versions (avec CUDA, cuDNN etc…).
2°) vous allez probablement rencontrer des problèmes lors de l’installation. Bonne nouvelle : d’autres personnes ont essayé avant vous. N’hésitez pas à faire des recherches sur internet en étant précis dans vos requêtes. Vous trouverez la solution.
3°) n’oubliez pas l’importance des variables d’environnement : vous pouvez en définir plusieurs, avec des versions de programmes différentes, avec ou sans GPU etc…Anaconda vous permet de choisir l’environnement qui convient via un simple menu déroulant.