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

猜你喜欢

转载自blog.csdn.net/shuijiaobuzhundahulu/article/details/83652238
今日推荐