1. 程式人生 > >tf.nn.dropout 的作用

tf.nn.dropout 的作用

我們都是到dropout 為了防止過擬合而隨機抑制神經元,即

(1)將featuremap 某些神經元按概率設定為0

(2)不被抑制的神經元變為 1/pro 倍

在tensroflow 中

tf.nn.dropout(X,pro)主要含兩個變數,輸入張量X和 概率值pro(也是要以張量輸入)

程式碼如下:

import tensorflow as tf
a=tf.constant([1.,2.,3.,4.,5.,6.,7.,8.,9.,10.])
dropout_keep_prob = tf.placeholder(tf.float32, name="dropout_keep_prob")
b=tf.nn.dropout(a,dropout_keep_prob)
with tf.Session() as sess:
    print(sess.run(b,feed_dict={dropout_keep_prob:0.5}))

結果如下:

[ 2.  4.  0.  0. 10.  0. 14.  0. 18.  0.]

由於是以概率發生變化,所以不一定每次都是50%的神經元被抑制,也有可能這樣

[ 0.  4.  6.  8. 10. 12.  0. 16.  0.  0.]