Maison >développement back-end >Tutoriel Python >Quand la couche dense Keras aplatit-elle l'entrée ?

Quand la couche dense Keras aplatit-elle l'entrée ?

DDD
DDDoriginal
2024-10-21 07:54:02827parcourir

When Does the Keras Dense Layer Flatten Input?

L'énigme de la forme de sortie de la couche dense Keras

Dans Keras, la couche dense a longtemps été documentée pour aplatir son entrée avant d'appliquer le produit scalaire avec le noyau. Cependant, un comportement récent suggère le contraire.

Problème :

Comme illustré dans le code de test ci-dessous, la sortie de la couche Dense conserve le dernier axe du tenseur d'entrée :

input1 = layers.Input((2,3))
output = layers.Dense(4)(input1)
print(output)

Sortie :

<tf.Tensor 'dense_2/add:0' shape=(?, 2, 4) dtype=float32>

Réponse :

Contrairement à la documentation, la couche Dense n'aplatit pas l'entrée. Au lieu de cela, il applique son fonctionnement indépendamment le long du dernier axe. Ainsi, étant donné une entrée de forme (n_dim1, n_dim2, ..., n_dimk), la forme de sortie devient (n_dim1, n_dim2, ..., m), où m est le nombre d'unités dans la couche dense.

Implications :

Ce comportement rend TimeDistributed(Dense(...)) et Dense(...) fonctionnellement équivalents. De plus, étant donné que les poids sont partagés sur le dernier axe, la couche Dense avec la forme d'entrée (n_dim1, n_dim2, ..., n_dimk) n'a que m * n_dimk m (paramètres de biais par unité) paramètres entraînables.

Illustration visuelle :

[Image d'un réseau neuronal avec une couche dense appliquée à une entrée à plusieurs dimensions]

Cette illustration montre comment le fonctionnement de la couche dense est appliqué indépendamment le long du dernier axe du tenseur d'entrée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn