All scripts of my trainings for the AI association of CentraleSupelec : "Les Automatants"
Tous les scipts de mes formations pour l'association d'IA de CentraleSuplec Les Automatants.
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 !
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.
Cf le README de formation jax
.
Cf le README de formation jax
.
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.
Valentin GOLDITE - 08/04/2022
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.
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
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
Dans un environnement virtuel, installez le package:
cd formation\ transformer
pip install -r requirements.txt
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: