2017-10-07 6 views
0

Le constructeur de nombreuses classes RNN (BasicRNNCell, LSTMCell, etc.) accepte un argument nommé num_units. Ceci définit le nombre d'unités dans la cellule. Je pensais que cela identifiait le nombre d'éléments que le RNN devrait traiter dans la séquence. Donc, si vous voulez qu'un RNN traite des séquences de longueur N, vous auriez N unités par cellule. Est-ce correct? Qu'est-ce qu'une unité RNN?Unités et cellules RNN de TensorFlow

+1

Non, c'est le nombre d'unités dans la cellule RNN, donc, il désigne la forme de la cellule. – AKSW

Répondre

1

Non, ce n'est pas correct.

num_units fait référence au nombre de fonctionnalités que vos cellules peuvent représenter. A chaque pas de temps, vous donnez une entrée d'une certaine taille (que vous appelez "le nombre d'éléments que le RNN doit traiter en séquence"). C'est comme la couche 0 de votre réseau de neurones. Cette entrée est ensuite transformée en une couche cachée, avec la taille num_units. C'est aussi la taille de la sortie de la cellule. Ce que vous appelez N, est défini par la taille de votre tenseur d'entrées. num_units est un hyperparamètre de votre modèle. Plus il est grand, plus les degrés de liberté de votre modèle sont élevés (caractéristiques plus descriptives).

1

ici num_units fait référence au nombre d'unités dans une cellule LSTM (ou rnn). Num_units peut être interprété comme l'analogie de la couche cachée du réseau neuronal feed forward.Le nombre de nœuds dans la couche cachée d'un réseau neuronal feed forward est équivalent à nombre num_units d'unités LSTM dans une cellule LSTM à chaque pas de temps de l'image network.Following devrait effacer tout confusion- enter image description here

(cité de https://jasdeep06.github.io/posts/Understanding-LSTM-in-Tensorflow-MNIST/