我们要知道tf.nn.dropout()是一个防止模型过于拟合的方法,该方法顾名思义就是丢弃一部分数据,来达到防止过于拟合的目的!
我们看一个例子,这个是全连接层的操作
import tensorflow as tf
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3])
b = tf.constant([7.5, 8.4, 9.4, 10.41, 11.1, -12.0], shape=[3,2])
c=tf.constant([1.4,2.4,3.7,4.9],shape=[2,2])
d=tf.matmul(a,b)+c
m=tf.nn.relu(d)
g=tf.nn.dropout(m,keep_prob=0.8)
with tf.Session() as sess:
print("全连接层以后输出的结果:",sess.run(d))
print("激活函数以后的结果",sess.run(m))
print("防止过于拟合的结果:",sess.run(g))
激励函数就是将负值全部填充为0,避免运算量大!
防止过于拟合函数又名丢弃函数,
keep_prob=0.8 就是保留激励层数据的0.8,这个值越大丢弃的数据越少,这个值越小丢弃的值越多,keep_prob是保留数据的概率!