La formation FIDLE (pour Formation Introduction au Deep Learning]] a pour objectif de proposer une introduction au Deep Learning, allant des concepts fondamentaux aux architectures avancées (VAE, Transformers, GAN, …).
Cette formation se basant sur l'exploitation de Notebooks Jupyter, elle requiert l'exploitation d'outils, notamment des outils des environnements de Machine Learning Tensorflow, PyTorch. La documentation fournie ne propose cependant pas les éléments permettant l'exploitation de GPU.
Voici quelques lignes pour pouvoir lancer simplement tous les notebooks Fidle au CBP.
mkdir -p /local/$USER/FidleROOT
cd /local/$USER/FidleROOT
git clone https://gricad-gitlab.univ-grenoble-alpes.fr/talks/fidle.git
wget https://fidle.cnrs.fr/fidle-datasets.tar
tar -xf fidle-datasets.tar
$HOME
occupera non seulement beaucoup d'espace, mais ralentira considérablement son utilisation.
Pour éviter de trop charger le serveur Web hébergeant Fidle au CNRS, une copie a été placée sur l'espace projets du CBP : /projects
. Les 5 lignes précédentes peuvent se réduire aux 4 suivantes :
En lieu et place des lignes précédentes :
mkdir -p /local/$USER/FidleROOT
cd /local/$USER/FidleROOT
tar xzf /projects/FidleROOT/fidle.tgz
tar xf /projects/FidleROOT/fidle-datasets.tar
L'environnement conda proposé en standard au CBP est le 4.9.2. Il intègre la majorité des outils exploités en Machine Learning mais également l'environnement Nvidia nécessaire à l'exploitation des GPU en Machine Learning.
Son chargement se fait par l'application de la commande :
module load conda3/4.9.2
De manière à pointer correctement les bases d'images, définir la variable d'environnement FIDLE_DATASETS_DIR
sur l'emplacement des images téléchargées :
export FIDLE_DATASETS_DIR=/local/$USER/FidleROOT/fidle-datasets
jupyter-notebook --no-browser --ip=$(hostname)
Au chargement de la ligne précédente, le terminal affiche des lignes comparables aux suivantes :
[I 17:26:36.731 NotebookApp] Serving notebooks from local directory: /local/equemene/FidleROOT [I 17:26:36.731 NotebookApp] Jupyter Notebook 6.4.11 is running at: [I 17:26:36.731 NotebookApp] http://gtx980tialpha:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3 [I 17:26:36.732 NotebookApp] or http://127.0.0.1:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3 [I 17:26:36.732 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 17:26:36.743 NotebookApp] To access the notebook, open this file in a browser: file:///home/equemene/.local/share/jupyter/runtime/nbserver-267202-open.html Or copy and paste one of these URLs: http://gtx980tialpha:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3 or http://127.0.0.1:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3
Copier l'adresse commençant par http
mais ne contenant pas 127.0.0.1
et la coller dans son navigateur. Ici, ce serait :
http://gtx980tialpha:8888/?token=76e46066caea92735c79f1903f1e055d511cee0525a16bb3
Cette ligne ouvre le serveur Web créé par l'outil Jupyter sur la machine gtx980tialpha au Centre Blaise Pascal.
Une fois l'adresse précédente copiée dans le navigateur, on obtient ceci :
Ces deux dossiers fidle et fidle-datasets contiennent respectivement l'ensemble des notebooks du cours et les bases d'images.
Par exemple, pour sélectionner le notebook sur l'apprentissage de chiffres manuscrits, choisir 02-CNN-MNIST.ipynb
Le notebook se charge. Pour l'exécuter pas à pas, cliquer sur Run
Au chargement des éléments initiaux, le notebook informe par exemple que la librairie cudart est bien chargée. Les GPU présents sur la machine pourront être exploités.
L'exécution de cellules suivantes rappelle des informations sur l'environnement complet d'exécution.
Après exploitation, il est IMPERATIF de clôturer son jupyter-notebook, sans quoi la mémoire des GPU reste réservée au notebook en cours d'exécution. Il faut donc dans son terminal taper un <Ctrl><C>
. Le terminal demande une confirmation validée par un 'y'.
Shutdown this notebook server (y/[n])? y [C 17:43:03.495 NotebookApp] Shutdown confirmed [I 17:43:03.498 NotebookApp] Shutting down 1 kernel [I 17:43:03.499 NotebookApp] Kernel shutdown: 87440d72-6146-4384-a7a0-e8c9c6a51013 [I 17:43:06.116 NotebookApp] Shutting down 0 terminals