automatants

All scripts of my trainings for the AI association of CentraleSupelec : "Les Automatants"

Stars
4

automatants

Tous les scipts de mes formations pour l'association d'IA de CentraleSuplec Les Automatants.

Formation JAX - CIFAR-10 avec CNN

L'objectif de cette formation est de prsenter une pipeline d'entranement de modle de deep learning (en l'occurence des CNN squentiels) pour le jeu de donnes CIFAR-10 en utilisant le framework JAX. C'est un framework dvelopp par Deep-Mind (Google) qui permet de construire des modles de machine learning de manire performante (compilation XLA) et plus flexible que son homologue Tensorflow, utilisant un framework presque entirement bas sur les nd.array de numpy (mais stock sur le GPU, ou TPU si disponible). Il fournit galement des utilitaires indits pour le calcul de gradient (per example, backward et forward) ainsi qu'un meilleur systme de seed (pour la reproductibilit) et un outil pour batcher des oprations compliques automatiquement et efficacement.

Lien de la doc: https://jax.readthedocs.io/en/latest/index.html.

L'objectif est de coder soi-mme sa propre pipeline d'entranement pendant la formation en rcrivant une version de cnn_cifar10.py en utilisant les fonctions utilitaires de utils/. Ensuite, il faudra amliorer le modle notamment en limitant l'overfitting !

Dataset

CIFAR-10 est un jeu de donnes de 60000 images de taille 32x32 RGB labelises selon 10 classes (airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck). L'objectif est tout simplement de prdire le plus souvent possible la classe des images.

Installation

Cf le README de formation jax.

Quick start

Cf le README de formation jax.

Formation Pytorch - MLP et CNN sur MNIST

L'objectif de la formation est de faire un MLP et un CNN sur Pytorch pour de la classification sur le jeu de donnes MNIST.

Formation Rseaux de Neurones Rcurrents (RNN)

Valentin GOLDITE - 08/04/2022

Introduction

Les rseaux de neurones rcurrents sont une famille de rseaux de neurones un peu particulier. Les rseaux de neurones classiques prennent en entre un batch de donnes qui sont traites en parrallle et sparment. En revanche les rseaux de neurones rcurrents prennent en entre un batch de squences de donnes et chaque squence est traite en prenant les donnes successivement et les sorties prcdentes interviennent dans le calcul de la sortie actuelle. Ainsi, ils sont en quelque sorte une gnralisation des multi layers perceptrons car ils permettent d'inclure un aspect "squentiel" (="temporel" le plus souvent) dans le calcul des prdictions.

Installation

Clonez le repertoire dans un dossier local:

git clone [email protected]:valentingol/automatants.git
cd formation\ pytorch

Crez un nouvel environment virtuel avec virtualenv:

python3 -m venv <path to env>
source <path to env>/bin/activate

Ou avec virtualenvwrapper:

mkvirtualenv <name of env>

Puis installez les packages requis avec pip:

cd formation\ rnn
pip install -r requirements.txt

Vous pouvez prsent faire touner le code pour entraner un LSTM avec tensorflow:

python train_rnn.py

Formation Transformers

Les transformers sont une source majeure d'architecture state-of-the-art dans presque tous les domaines du deep learning (NLP, vision, audio et dans une moindre mesure reinforcement learning et tabular data). Le prsent package est le cadre de la formation Transformer pour les Automatants utilisant les transformers de Hugging Face

Installation

Dans un environnement virtuel, installez le package:

cd formation\ transformer
pip install -r requirements.txt

Quickstart

Le fichier canevas.ipynb contient le notebook complter de la formation.

Le notebook complet est main_torch.ipynb (en Pytorch) et main_jax.ipynb (en JAX).

Quelques figures d'attention pour la traduction englais - franais: