[英]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.