Heim > Backend-Entwicklung > Python-Tutorial > Reduziert eine dichte Schicht in Keras den Eingabetensor?

Reduziert eine dichte Schicht in Keras den Eingabetensor?

Barbara Streisand
Freigeben: 2024-10-21 07:53:30
Original
1074 Leute haben es durchsucht

Does a Dense Layer in Keras Flatten the Input Tensor?

Das Verhalten dichter Schichten von Keras verstehen

In Keras führt die dichte Schicht ein Skalarprodukt zwischen ihren Gewichten und dem Eingabetensor durch. Das in der Dokumentation angegebene Standardverhalten besteht darin, den Eingabetensor abzuflachen, wenn sein Rang größer als 2 ist. Im Gegensatz zu dieser Dokumentation wird jedoch tatsächlich eine dichte Ebene auf die letzte Achse des Eingabetensors angewendet.

Lass es uns anhand eines Beispiels verdeutlichen. Nehmen Sie eine dichte Ebene mit m Einheiten an, die auf einen Eingabetensor mit der Form (n_dim1, n_dim2, ..., n_dimk) angewendet wird. Die Ausgabeform wäre (n_dim1, n_dim2, ..., m).

Diese Beobachtung impliziert, dass TimeDistributed(Dense(...)) und Dense(...) funktional äquivalent sind. Darüber hinaus hat das Anwenden einer dichten Ebene mit gemeinsamen Gewichten einen interessanten Effekt. Betrachten Sie das folgende Spielzeugnetzwerk:

<code class="python">model = Sequential()
model.add(Dense(10, input_shape=(20, 5)))

model.summary()</code>
Nach dem Login kopieren

Die Modellzusammenfassung unten zeigt nur 60 trainierbare Parameter:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_1 (Dense)              (None, 20, 10)            60        
=================================================================
Total params: 60
Trainable params: 60
Non-trainable params: 0
_________________________________________________________________
Nach dem Login kopieren

Dies geschieht, weil jede Einheit in der dichten Schicht mit allen fünf Elementen jedes einzelnen verbunden ist Zeile in der Eingabe mit den gleichen Gewichtungen. Daher sind nur 10 × 5 10 (Bias-Parameter pro Einheit) = 60 Parameter erforderlich.

Um dieses Verhalten weiter zu veranschaulichen, betrachten Sie die folgende visuelle Darstellung:

[Bild einer dichten Schicht Anwendung auf eine Eingabe mit zwei oder mehr Dimensionen in Keras]

In diesem Bild wird die dichte Ebene (rot dargestellt) auf einen dreidimensionalen Eingabetensor angewendet. Der Ausgabetensor ist ebenfalls dreidimensional, wobei jede Spalte im Eingabetensor unabhängig einer Spalte im Ausgabetensor zugeordnet ist.

Das obige ist der detaillierte Inhalt vonReduziert eine dichte Schicht in Keras den Eingabetensor?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage