Keras 3 API 文件 / 層 API / 正規化層 / Dropout 層

Dropout 層

[原始碼]

Dropout 類別

keras.layers.Dropout(rate, noise_shape=None, seed=None, **kwargs)

將 dropout 應用於輸入。

Dropout 層在訓練期間的每個步驟,以 rate 的頻率隨機將輸入單元設為 0,這有助於防止過度擬合。未設為 0 的輸入會按 1 / (1 - rate) 放大,使得所有輸入的總和保持不變。

請注意,Dropout 層僅在 call() 中將 training 設為 True 時應用,這樣在推論期間不會丟棄任何值。當使用 model.fit 時,training 將會自動適當地設為 True。在其他情況下,您可以在呼叫層時明確地將參數設為 True

(這與為 Dropout 層設定 trainable=False 相反。trainable 不會影響層的行為,因為 Dropout 沒有任何可以在訓練期間凍結的變數/權重。)

參數

  • rate:介於 0 和 1 之間的浮點數。要丟棄的輸入單元比例。
  • noise_shape:1D 整數張量,表示將與輸入相乘的二元 dropout 遮罩的形狀。例如,如果您的輸入形狀為 (batch_size, timesteps, features),並且您希望所有時間步的 dropout 遮罩都相同,則可以使用 noise_shape=(batch_size, 1, features)
  • seed:要用作隨機種子的 Python 整數。

呼叫參數

  • inputs:輸入張量(任何秩)。
  • training:Python 布林值,指示層應該在訓練模式(新增 dropout)還是推論模式(不執行任何操作)下運作。