輸入形狀錯誤:Keras 密集層中的扁平化與重塑
在典型的Keras 網路中,密集層期望扁平化的輸入資料單一維度。然而,當使用密集層和更高維度的輸入資料時,會出現一個常見錯誤。這可能會導致以下輸出:
<tf.Tensor 'dense_2/add:0' shape=(?, 2, 4) dtype=float32>
理解差異
與文件相反,該文件指出在應用密集之前高維度輸入會被展平層, Keras 最近的更新改變了這種行為。此層現在獨立應用於輸入張量的最後一個軸。
在上面的範例中,輸入形狀為 (2, 3)。具有 4 個單元的 Dense 層分別應用於每一行,得到 (2, 4) 的輸出形狀。
意義與注意事項
此變更具有一定的影響意義:
視覺插圖
為了更好地理解,請考慮以下內容插圖:[圖表,顯示如何將密集層圖像應用於多維輸入,並跨行共享權重]結論
為了避免上述錯誤,請確保在應用之前對Dense 層的輸入進行扁平化。或者,在處理多維輸入時接受密集層的新行為,考慮其對某些網路架構的影響和潛在優勢。以上是扁平化或重塑是否先於具有多維輸入的 Keras 密集層?的詳細內容。更多資訊請關注PHP中文網其他相關文章!