TensorFlow - 激活函数

TensorFlow - 激活函数

flyfish

激活函数(Activation function)目标是为神经网络引入非线性。

评价某个激活函数是否有用时,可考虑下列为数不多的几个主要因素。
1)该函数应是单调的,这样输出便会随着输入的增长而增长,从而使利用梯度下降法寻找局部极值点成为可能。
2)该函数应是可微分的,以保证该函数定义域内的任意一点上导数都存在,从而使得梯度下降法能够正常使用来自这类激活函数的输出。

任何满足这些条件的函数都可用作激活函数。

TensorFlow提供的多种激活函数

1.tf.nn.relu

2.tf.sigmoid

3. tf.tanh

4. softplus
log(exp(features)+1)

import tensorflow as tf

features  = tf.constant([-10, 12.0])
with tf.Session() as sess:
    rt = tf.nn.softplus(features )
    print(sess.run(rt))

输出
[ 4.54177061e-05 1.20000057e+01]

5.tf.nn.dropout

依据某个可配置的概率将输出设为0.0。

dropout

n. 中途退学;辍学学生

import tensorflow as tf
features = tf.constant([-20.0,-10.0,10.0,20.0])

sess = tf.Session()
init = tf.global_variables_initializer()
sess.run(init)

dp = tf.nn.dropout(features,keep_prob=0.5)
rt=sess.run([features,dp])
print(rt)

[array([-20., -10., 10., 20.], dtype=float32), array([-40., -0., 20., 40.], dtype=float32)]

tf.nn.dropout(x, keep_prob, noise_shape=None, seed=None, name=None)
keep_prob : float类型,每个元素被保留下来的概率
noise_shape : 一个1维的int32张量,代表了随机产生“保留/丢弃”标志的shape。

不保留元素为0,当元素被保留下来时,该元素的输出值将被放大到原来的1/keep_prob倍

你可能感兴趣的:(深度学习,TensorFlow)