AMAL 2020-2021

Cours

TME

  • Doc PyTorch
  • Avant chaque TME, penser à exécuter pip install -r http://webia.lip6.fr/~bpiwowar/requirements-amal.txt afin de profiter de l’environnement avec tous les modules installés.
  • Sur les machines de la ppti, l’environnement peut être activé en exécutant : source /users/nfs/Enseignants/piwowarski/venv/3.7/amal/bin/activate
  • Deux salles de la ppti sont équipées de bons GPUs : la 502 et la 407. Pour se connecter, en ssh en passant par la passerelle ssh.ufr-info-p6.jussieu.fr,  puis ppti-14-502-XX (XX=01 à 16) ou ppti-14-407-XX.
  • Vous pouvez lancer un jupyter lab a distance sur ces machines : il faut pour cela rajouter dans votre .ssh/config (sous linux)
    Host ppti
    User votre_login
    Hostname ssh.ufr-info-p6.jussieu.fr
    
    Host *.ppti
    User votre_login
    ProxyCommand ssh ppti -W $(basename %h .ppti):%p

    Puis faire ssh -L8888:localhost:8888 ppti-14-502-XX.ppti et lancer jupyter lab sur la machine distance. En local, vous utilisez l’adresse habituelle de jupyter, http://localhost:8888.
    En plus du /tmp, vous avez également un répertoire /tempory qui est semi-permanent (n’est pas nettoyé à chaque reboot, mais plus rarement) de plus de 300Go, dans lequel vous pouvez travailler quand vous avez besoin de place.

Semaine 1

Objectifs : prise en main de pytorch, implémentation d’une fonction au sens de pytorch, descente de gradient, dérivation chaînée.

 Semaine 2

Objectifs : Autograd, Modules.
Installer datamaestro et datamaestro-ml pour avoir facilement accès aux jeux de données des TMEs.

Semaine 3

Objectifs : Modules (fin), tensorboard,  GPU, checkpointing, Dataset, Dataloader
Mettre à jour datamaestro et installer datamaestro-image pour avoir MNIST.

Semaine 4

Objectifs : Réseaux récurrents, classification de séquences, forecasting, génération de texte, softmax, cross entropie et embeddings (intro).

Semaine 5

Objectifs : LSTM et GRU, padding, batch de séquences de tailles variables, beam-search

Semaine 6

Objectifs : LSTM et GRU pytorch, Seq2Seq, Curriculum learning et Byte-Pair Encoding

Semaine 7

Objectifs : CNN et classification de sentiments

Semaine 8

Objectifs : protocole expérimentale, régularisation L1, L2 , dropout, batchnorm, layernorm

Semaine 9

Objectifs : Attention globale

Semaine 10

Objectifs : self-attention, transformer

Semaine 11

Objectifs : programmation GPU (optionnel)