考慮以下模型:
model = Sequential()
model.add(Dense(60, input_shape=(60,), activation='relu', kernel_constraint=MaxNorm(3)))
model.add(Dropout(0.2))
model.add(Dense(30, activation='relu', kernel_constraint=MaxNorm(3)))
model.add(Dropout(0.2))
model.add(Dense(1, activation='sigmoid'))
我理解 Dropout 用于正則化的想法。根據我的理解,Dropout 是每層應用的,其速率p決定了神經元被丟棄的概率。在上面的例子中,我無法理解第一個 dropout 層是應用于第一個隱藏層還是第二個隱藏層。因為正如我之前提到的,dropout 是按層應用的,這里讓我感到困惑的是,Keras 將 dropout 作為一個單獨的層來處理。此外,如果將第一個 dropout 層應用于第二個隱藏層,那么第二個 dropout 層呢?它是否應用于輸出層(將 dropout 應用于輸出神經元根本無效)?那么請有人能澄清這些觀點嗎?
uj5u.com熱心網友回復:
根據keras 中的檔案:
將 Dropout 應用于輸入。
因此,drop out 的輸入層以p. 在您的情況下,這意味著第一層。在您的示例中,將丟棄第一層的 60 個神經元中的 20%。
此外,如果 drop out 在其后的層上起作用,也沒有任何意義,因為這樣您將從最后一層中退出 - 這可能是分類中的結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/520894.html
標籤:张量流喀拉斯退出
上一篇:tf.function中的for回圈回傳Tensor("while/Placeholder:0",shape=(),dtype=int32)
