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

Pour approfondir le sujet

Sur le même thème :

Deux ans après l’arrivée de ChatGPT, comment la GenAI transforme la recherche en ligne et le marketing

Alors que ChatGPT vient de fêter son second anniversaire et compte aujourd'hui plus de 300 millions d'utilisateurs hebdomadaires, le rapport "Online Search After ChatGPT:...

Llama 3.3 70B : Meta dévoile son dernier ajout à la famille Llama 3, un modèle particulièrement efficace

Alors que Meta prépare le lancement des premiers modèles Llama 4 pour le début de l'année prochaine, l'entreprise a dévoilé en fin de semaine...

AgentLab, un framework open source pour le développement et l’évaluation des agents Web

Lancé par ServiceNow, AgentLab est un framework open source visant à faciliter le développement et l'évaluation d'agents Web. Son objectif principal est de soutenir...

Pleias : des modèles de langages ouverts pour une IA éthique et transparente

Pleias, une start-up française, annonce le lancement de sa première famille de grands modèles de langage (LLM), définissant de nouvelles références en matière...

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 un entrepreneur, ingénieur de recherche spécialisé dans l’apprentissa

Partager l'article

Deux ans après l’arrivée de ChatGPT, comment la GenAI transforme la recherche en ligne et le marketing

Alors que ChatGPT vient de fêter son second anniversaire et compte aujourd'hui plus de 300 millions d'utilisateurs hebdomadaires, le rapport "Online Search After ChatGPT:...

Llama 3.3 70B : Meta dévoile son dernier ajout à la famille Llama 3, un modèle particulièrement efficace

Alors que Meta prépare le lancement des premiers modèles Llama 4 pour le début de l'année prochaine, l'entreprise a dévoilé en fin de semaine...

AgentLab, un framework open source pour le développement et l’évaluation des agents Web

Lancé par ServiceNow, AgentLab est un framework open source visant à faciliter le développement et l'évaluation d'agents Web. Son objectif principal est de soutenir...

Pleias : des modèles de langages ouverts pour une IA éthique et transparente

Pleias, une start-up française, annonce le lancement de sa première famille de grands modèles de langage (LLM), définissant de nouvelles références en matière...