Tutoriels intelligence artificielle Formation TensorFlow : Coder un réseau de neurones récurrent

Pour approfondir le sujet

GAIA-X : Conférence des ministres et forum d’experts sur le projet infrastructure de données européenne

Le 4 juin prochain se tiendra une conférence des ministres sur GAIA-X, le projet franco-allemand pour une infrastructure européenne de données. Les représentants du...

Deeptech North America – NETVA’20 : 14 start-up deeptech françaises innovantes ont été sélectionnées

Le programme Deeptech North America – NETVA porté par le ministère de l’Europe et des Affaires Etrangères a annoncé la sélection de 14 start-up Deeptech pour...

Apple rachète la start-up Inductiv spécialisée dans le traitement des données pour améliorer Siri

Apple a confirmé l'acquisition d'Inductiv, une start-up canadienne utilisant l’intelligence artificielle pour automatiser les tâches d’identification et de correction des erreurs dans les données....

Formation TensorFlow : Coder un réseau de neurones récurrent

Dans cette nouvelle vidéo de formation à TensorFlow 2.0, nous allons coder notre premier réseau de neurones récurrent. Ce cours s’appuie sur deux vidéos précédentes : Comprendre les réseaux de neurones récurrents, comprendre les réseaux LSTM.

Accéder au Notebook (code source) de ce cours

 

Retourner au sommaire de la formation à TensorFlow

 

 

Transcription de cette vidéo

On a vu dans les dernières vidéos comment on pouvait générer des batchs, on a donc une méthode pour générer des batchs, on a vu l’importance du one hot encoding, on a vu à quoi ressemblait notre dataset, maintenant on va voir comment créer notre réseau de neurones récurrent. L’important pour pouvoir suivre cette vidéo, c’est vraiment que vous ayez une compréhension des vidéos que j’ai faites sur les réseaux de neurones récurrents pour comprendre comment ça fonctionne. On va direcctement partir sur la création de notre modèle. Le modèle qu’on va créer, ça va être celui-ci. C’est un peu différent des modèles que j’ai montré précédemment, ou l’on avait directement les cellules LSTM et les outputs. Je vais stacker les cellules LSTM (les mettre les unes sur les autres). Sachant que les cellules du même étage sont les mêmes, si ce n’est que les états sont différents puisque nous sommes à des instants différents de la séquence. Mais les cellules des deux étages sont différentes. Cela nous permet d’augmenter le nombre de features qui vont pouvoir être détectées par notre réseau et les combinaisons possibles qui vont être effectuées pour pouvoir générer des lettres et du texte. C’est la seule nuance, mais on va voir que dans l’implémentation, l’ajout de ce layer ne va pas beaucoup faire varier l’implémentation du réseau. Si ce n’est qu’on a un état initial par cellule LSTM. Nous allons définir dans tf_inputs les entrées de notre réseau, en utilisant tf.keras.Input. (Nous utilisons la valeur None pour ne pas avoir à déterminer de valeur fixe dès à présent). En revanche, on spécifie une taille de batch dès à présent : 64. Cette fois, nous ne ferons pas de subclassing, contrairement aux dernières vidéos. Nous définirons directement nos layers. Je définis mon premier one hot layer (défini dans la vidéo précédente). On instantie le layer en lui passant l’input. Mais ce dernier n’est pas encore rempli. Nous voyons que le code fonctionne directement, mais qu’on obtient un tensor qui n’a pas encore de valeur. Il est ensuite très facile de définir nos layers de cellules LSTM grâce à tf.keras.layers.LSTM . On définit la taille des états de notre cellule ( 128 valeurs dans l’exemple) , ainsi que les paramètres return_sequences (qui permet de récupérer toute la séquence d’un seul coup si on le met à True, ou de ne récupérer que le dernier élément de la séquence si on le met à False). Nous avons également le paramètre stateful qui permet de ne pas retourner à l’état initial à chaque appel. Nous passons one_hot en paramètre de notre premier layer. Nous définissons ensuite notre deuxième layer de manière identique, en passant cette fois notre premier layer en paramètre du précédent. Nous ajoutons ensuite un dense layer caché avec activation relu et nous lui passons en entrée la sortie du 2ème layer LSTM. Nous déclarons ensuite notre layer de sortie, qui est également de type Dense, en utilisant la méthode d’activation softmax et en passant en entrée notre layer caché. Il ne nous reste plus qu’à créer notre modèle avec tf.keras.Model en définissant les paramètres inputs à tf_inputs et outputs à outputs.

Nous voyons ensuite comment réinitialiser les cellules de notre modèle RNN. Nous verrons prochainement comment entrainer ce modèle.

Contributeur expert

Thibault Neveu

Thibault Neveu est jeune chercheur en intelligence artificielle. Il fut membre de la section rech

Partager l'article

Dernières actualités

GAIA-X : Conférence des ministres et forum d’experts sur le projet infrastructure de données européenne

Le 4 juin prochain se tiendra une conférence des ministres sur GAIA-X, le projet franco-allemand pour une infrastructure européenne de données. Les représentants du...

Deeptech North America – NETVA’20 : 14 start-up deeptech françaises innovantes ont été sélectionnées

Le programme Deeptech North America – NETVA porté par le ministère de l’Europe et des Affaires Etrangères a annoncé la sélection de 14 start-up Deeptech pour...

Apple rachète la start-up Inductiv spécialisée dans le traitement des données pour améliorer Siri

Apple a confirmé l'acquisition d'Inductiv, une start-up canadienne utilisant l’intelligence artificielle pour automatiser les tâches d’identification et de correction des erreurs dans les données....

Le Laboratoire de l’Egalité, en partenariat avec Renault et Engie présente son « Pacte pour une Intelligence Artificielle Égalitaire »

La semaine dernière, à l'occasion de l’événement ExplorIA organisé par le collectif Impact AI, Le Laboratoire de l’Egalité, en partenariat avec Renault et Engie,...