首頁 > 後端開發 > Python教學 > 為什麼 Keras 緻密層保留維度?

為什麼 Keras 緻密層保留維度?

DDD
發布: 2024-10-21 07:52:02
原創
545 人瀏覽過

Why Does the Keras Dense Layer Preserve Dimensionality?

Keras 密集層輸入形狀難題

這個問題探討了 Keras 文件與其密集層行為之間的明顯矛盾。文件指出,密集層在將點積與其核心應用之前會展平其輸入。然而,如所提供的程式碼片段所示,Dense 層的輸出形狀似乎並未被展平。

理解行為

解決此差異的關鍵關鍵在於理解Dense層在Keras中是如何應用的。與文件相反,密集層實際上會在輸入張量的最後一個軸上運行。因此,在範例程式碼片段中,Dense 層應用於 (2,3) 輸入張量的每一列,從而產生 (2, 4) 的輸出形狀。

意義和側面註解

此行為有重大影響:

  • TimeDistributed(Dense(...)) 和Dense(...) 等價: TimeDistributed (Dense(...)) 和Dense(...) 現在是等效的,因為兩者都將Dense 層應用於輸入張量的最後一個軸。
  • 共享權重效果: Dense 層中的每個單元都以相同的權重連接到輸入最後一個維度上的每個元素,因此與展平相比,參數數量更少。

視覺插圖

以下視覺插圖闡明了Dense 層的行為:

[具有(2,3) 形狀的張量和應用於最後一個軸的4 個單位的Dense 層的圖像]

密集層中的每個單元都連接到具有相同權重集的輸入張量列中的每個元素。結果是形狀為 (2, 4) 的輸出張量。

以上是為什麼 Keras 緻密層保留維度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板