簡體   English   中英

如何在Tensorflow中的隱藏層之前添加一個輟學層?

[英]How do I add a dropout layer before a hidden layer in tensorflow?

我在tensorflow的第二個隱藏層之前添加一個輟學層有點困惑嗎?

w_int = tf.initializers.glorot_normal()
w = tf.Variable(w_init(shape=[512, 256]))
b = tf.Variable(tf.random_normal(256))

keep_prob = tf.placeholder(tf.float32)
layer2 = tf.nn.sigmoid(tf.add(tf.matmul(x, w), b))

layer2_drop = tf.nn.dropout(layer2, keep_prob=keep_prob)

在培訓期間,我可以通過:

sess.run([adam, w], feed_dict={x: train_x, y_: train_y, keep_prob: 0.5})

在測試期間,我可以將keep_prob設置為1:

sess.run(cost_drop, feed_dict={x: mnist.test.images, y_: mnist.test.labels,  keep_prob: 1.0})

如果您在tensorflow頁面上查看tf.nn.dropout您會發現keep_prob已過時,我們應該改用rate參數。 因此, keep_prob = keep_prob像上面那樣傳遞keep_prob = keep_prob之外,我還需要在layer2_drop傳遞rate = 1 - keep_prob layer2_drop嗎?

如果不是,我應該如何使用rate而不是keep_prob上的layer2_drop如果我使用rate,我需要分別在訓練和測試中通過keep_prob嗎?

警告:不推薦使用某些參數:(keep_prob)。 它們將在將來的版本中刪除。 更新說明:請使用rate而不是keep_prob。 速率應設置為rate = 1-keep_prob。

如果可以容忍警告消息,那么keep_prob使用keep_prob可以很好地keep_prob

將來,只有rate可用,要進行更新,您應該使用建議的公式rate=1.-keep_prob

雖然可能可以同時使用keep_prob和rate,但請不要使用。 只要堅持最新的屬性rate 您不必同時設置它們,因為它們描述的是同一件事,並且實際上只會使用其中一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM