當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.keras.layers.Dropout用法及代碼示例


將 Dropout 應用於輸入。

繼承自:LayerModule

用法

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

參數

  • rate 在 0 和 1 之間浮點數。要刪除的輸入單位的分數。
  • noise_shape 一維整數張量,表示將與輸入相乘的二進製 dropout 掩碼的形狀。例如,如果您的輸入具有 (batch_size, timesteps, features) 形狀,並且您希望所有時間步的 dropout 掩碼都相同,則可以使用 noise_shape=(batch_size, 1, features)
  • seed 用作隨機種子的 Python 整數。

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

請注意,Dropout 層僅在 training 設置為 True 時適用,這樣在推理期間不會丟棄任何值。使用 model.fit , training 時會自動適當地設置為 True,在其他情況下,您可以在調用層時將 kwarg 顯式設置為 True。

(這與為 Dropout 層設置 trainable=False 形成對比。trainable 不會影響層的行為,因為 Dropout 沒有任何可以在訓練期間凍結的變量/權重。)

tf.random.set_seed(0)
layer = tf.keras.layers.Dropout(.2, input_shape=(2,))
data = np.arange(10).reshape(5, 2).astype(np.float32)
print(data)
[[0. 1.]
 [2. 3.]
 [4. 5.]
 [6. 7.]
 [8. 9.]]
outputs = layer(data, training=True)
print(outputs)
tf.Tensor(
[[ 0.    1.25]
 [ 2.5   3.75]
 [ 5.    6.25]
 [ 7.5   8.75]
 [10.    0.  ]], shape=(5, 2), dtype=float32)

調用參數:

  • inputs:輸入張量(任意等級)。
  • training:Python 布爾值,指示層應該在訓練模式(添加 dropout)還是在推理模式(什麽都不做)下運行。

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.layers.Dropout。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。