TP: Apprentissage par Transfert avec des Réseaux neuronaux Convolutionnels

Pr. Fabien Moutarde, et Guillaume Devineau - Centre de Robotique (CAOR) - MINES ParisTech - PSL Université Paris

1. Introduction aux notebooks jupyter

Jupyter est un environnement interactif de calculs. Un notebook est un document produit par jupyter et stocké sous la forme d'un fichier d'extension .ipynb

Dans un notebook peuvent être combinés du contenu riche (texte, images, liens, contenu HTML, etc.), ainsi que du code python éditable et éxécutable directement dans la page. Les résultats d'exécution du code (affichage texte, plots, images, etc...) s'ajoutant automatiquement juste en-dessous du code exécuté.

Cet environnement, ainsi que la bibliothèque scikit-learn sont largement utilisés dans la communauté de l'apprentissage statistique (Machine-Learning, ML).

2. Installation de jupyter

Jupyter et la plupart des autres packages nécessaires sont déjà installés sur les postes Linux du CCSI (L.117, L.119, L.120, L.022).

Si vous travaillez en salle machine de MINES ParisTech, il n'y a donc aucune installation à faire. Sautez à la section suivante.

Si vous travaillez sur votre ordinateur personnel, et que vous souhaitez installer python et les modules python les plus courants, dont jupyter et scikit-learn, la manière la plus simple et rapide consiste à récupérer et installer la distribution python anaconda, qui est un gros "package tout-en-un" existant pour tous les systèmes d'exploitation courants (Windows, Mac OS, et Linux). Une fois ce logiciel installé, il suffit de démarrer jupyter, qui ouvre dans votre navigateur Web une sorte d'explorateur permettant de trouver, ouvrir puis exécuter les notebooks (fichiers d'extension .ipynb) présents sur l'ordinateur.

3. Enoncé du TP

Sur votre machine ou sur un poste LINUX du CCSI, ouvrez un terminal et entrez les commandes suivantes :

# Uniquement si vous êtes sur les machines du CCSI:
export PATH=/opt/anaconda2/bin:$PATH
export HTTP_PROXY=proxy.ensmp.fr:8080
export HTTPS_PROXY=proxy.ensmp.fr:8080
export ALL_PROXY=proxy.ensmp.fr:8080

# Récupérer le notebook
wget http://perso.mines-paristech.fr/fabien.moutarde/ES_LSML/TP_TransferLearning-ConvNet/transfer_learning.ipynb

# Récupérer les poids du réseau pré-entrainé
wget http://perso.mines-paristech.fr/fabien.moutarde/ES_LSML/TP_TransferLearning-ConvNet/inception_v3_weights_tf_dim_ordering_tf_kernels_notop.h5
mv inception_v3_weights_tf_dim_ordering_tf_kernels_notop.h5 ~/.keras/models/

# Lancer jupyter
jupyter-notebook

Votre navigateur internet s'ouvre et liste les fichiers présents dans le dossier où vous avez lancé le terminal. Cliquez sur le nom du notebook pour le lancer et démarrer le TP.

4. Affichage de l'énoncé du TP

Vous verrez l'énoncé du TP en ouvrant le notebook sous Jupyter, mais au besoin vous pouvez aussi en VOIR ICI LE CONTENU SOUS FORME HTML.