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

Dropout 層

[原始碼]

Dropout 類別

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

對輸入應用 Dropout。

Dropout 層會在訓練時隨機將輸入單元設定為 0,頻率為 rate,這有助於防止過擬合。未設定為 0 的輸入會按 1 / (1 - rate) 放大,使所有輸入的總和不變。

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

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

引數

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

呼叫引數

  • inputs:輸入張量(任何秩)。
  • training:Python 布林值,指示該層應在訓練模式(添加 dropout)還是推論模式(不做任何事)中執行。