Maison >développement back-end >Tutoriel Python >L'aplatissement ou le remodelage précède-t-il une couche dense Keras avec une entrée multidimensionnelle ?
Erreur de forme d'entrée : aplatir ou remodeler dans la couche dense Keras
Dans un réseau Keras typique, la couche dense attend des données d'entrée aplaties avec une seule dimension. Cependant, une erreur courante survient lors de l’utilisation de la couche Dense avec des données d’entrée de dimensionnalité supérieure. Cela peut conduire au résultat suivant :
<tf.Tensor 'dense_2/add:0' shape=(?, 2, 4) dtype=float32>
Comprendre l'écart
Contrairement à la documentation, qui indique que l'entrée de grande dimension est aplatie avant d'appliquer le Dense couche, les mises à jour récentes de Keras ont modifié ce comportement. Le calque est maintenant appliqué indépendamment au dernier axe du tenseur d'entrée.
Dans l'exemple ci-dessus, la forme d'entrée est (2, 3). La couche dense avec 4 unités est appliquée séparément à chaque ligne, ce qui donne une forme de sortie de (2, 4).
Implications et considérations
Ce changement a certaines implications :
Une illustration visuelle
Pour une meilleure compréhension, considérez ce qui suit illustration :
[Image d'un diagramme montrant comment une couche dense est appliquée à une entrée multidimensionnelle, avec des pondérations partagées entre les lignes]
Conclusion
Pour éviter l'erreur susmentionnée, assurez-vous que l'entrée de la couche Dense est aplatie avant l'application. Vous pouvez également adopter le nouveau comportement de la couche Dense lorsqu'il s'agit d'entrées multidimensionnelles, en tenant compte de ses implications et de ses avantages potentiels pour certaines architectures de réseau.
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!