J'ai parcouru la documentation officielle mais je ne comprends toujours pas ce que TimeDistributed
fait réellement comme couche dans le modèle de Keras?
Je ne pouvais pas comprendre la différence entre TimeDistributed
et TimeDistributedDense
? Quand quelqu'un utilisera-t-il TimeDistributedDense
? Est-ce uniquement pour réduire le jeu de données d'entraînement? At-il d'autres avantages?
Quelqu'un peut-il expliquer avec un exemple précis ce que font ces deux types de wrappers?
Donc, fondamentalement, la TimeDistributedDense
a été introduite d’abord dans les premières versions de Keras afin d’appliquer une couche Dense
par étapes aux séquences. TimeDistributed
est un wrapper Keras qui permet d’obtenir n'importe quel calque statique (non séquentiel) et de l’appliquer de manière séquentielle. Donc si par exemple votre couche accepte en entrée quelque chose de forme (d1, .., dn)
grâce à TimeDistributed
votre couche pourrait accepter une entrée de forme (sequence_len, d1, ..., dn)
en appliquant une couche fournie à X[0,:,:,..,:]
, X[1,:,...,:]
, ...
, X[len_of_sequence,:,...,:]
.
Un exemple d'utilisation de ce type pourrait être l'utilisation d'un exemple. couche convolutionnelle pré-entraînée en un clip vidéo court en appliquant TimeDistributed(conv_layer)
, où conv_layer
est appliqué à chaque image d'un clip. Il produit la séquence de sorties qui peut ensuite être utilisée par la prochaine couche récurrente ou TimeDistributed
.
Il est bon de savoir que l'utilisation de TimeDistributedDense
est dépréciée et qu'il est préférable d'utiliser TimeDistributed(Dense)
.
TimeDistributedDense
est identique à TimeDistributed
avec la seule différence que TimeDistributed
peut être utilisé avec différents types de calques et pas uniquement les calques denses.
La documentation de Keras indique qu’environ TimeDistributed
:
"Notez que ceci est strictement équivalent à l'utilisation de layers.core.TimeDistributedDense
. Cependant, ce qui diffère de TimeDistributed
, c'est qu'il peut être utilisé avec des calques arbitraires, pas uniquement avec Dense, par exemple avec un calque Convolution2D
"