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>
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 _________________________________________________________________
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!