TensorFlow2的tf.sigmoid()函数、tf.nn.softmax()函数和tf.tanh()函数

1、tf.sigmoid函数 应用sigmoid函数可以将输出压缩至0~1的范围
计算公式为
f ( x ) = 1 1 + e ? x f(x) = \frac{1}{1 + e^{-x}} f(x)=1+e?x1?
TensorFlow2的tf.sigmoid()函数、tf.nn.softmax()函数和tf.tanh()函数
文章图片
tf.sigmoid()的函数的用法为:

tf.sigmoid ( x, name=None )

参数说明:
  • x :类型为float16, float32, float64, complex64, or complex128的tensor
  • name: 操作的名称(可选)。
【TensorFlow2的tf.sigmoid()函数、tf.nn.softmax()函数和tf.tanh()函数】示例:
import tensorflow as tfa = tf.linspace(-6.0, 6, 10 ) # Out[5]: # tf.sigmoid(a) # Out[6]: # x = tf.random.normal([1, 28, 28]) * 5 tf.reduce_min(x), tf.reduce_max(x) # Out[8]: # (, #)x = tf.sigmoid(x) tf.reduce_min(x), tf.reduce_max(x) # Out[10]: # (, #)

注:对于分类来讲,sigmoid并不能完全达到想要的功能,比如:对于一个10分类,它的结果范围为0~9,并且想要∑ i ? [ 0 ~ 9 ] p ( y = i ∣ x ) = 1 \sum_{i\epsilon [0~9]} p(y = i | x) = 1 ∑i?[0~9]?p(y=i∣x)=1,而sigmoid只能保证单个的点,不能保证所有的点的和为1,要想实现这个功能,见下面的softmax
2、tf.nn.softmax函数 TensorFlow2的tf.sigmoid()函数、tf.nn.softmax()函数和tf.tanh()函数
文章图片
注,一般将没有加激活函数的称为Logits,加了softmax后称为Probabilities,经过softmax后,有把最大值放大的过程,相当于把强的变得更强,把弱的变得更弱。
用法:
tf.nn.softmax ( logits, axis=None, name=None, dim=None )

参数说明:
  • logits:一个非空的Tensor。必须是下列类型之一:half, float32,float64。
  • axis:将在其上执行维度softmax。默认值为-1,表示最后一个维度。
  • name:操作的名称(可选)。
  • dim:axis的已弃用的别名。
此函数执行相当于:
s o f t m a x = t f . e x p ( l o g i t s ) t f . r e d u c e _ s u m ( t f . e x p ( l o g i t s ) , a x i s ) softmax = \frac{tf.exp(logits)}{ tf.reduce\_sum(tf.exp(logits), axis)} softmax=tf.reduce_sum(tf.exp(logits),axis)tf.exp(logits)?
a = tf.linspace(-2., 2., 5) tf.nn.softmax(a) # Out[13]: #

logits = tf.random.uniform([1, 10], minval = -2, maxval = 2) # Out[15]: # prob = tf.nn.softmax(logits, axis = 1)tf.reduce_sum(prob, axis = 1) # Out[17]:

3、tf.tanh函数 把值压缩到 -1~1 之间
TensorFlow2的tf.sigmoid()函数、tf.nn.softmax()函数和tf.tanh()函数
文章图片
tf.math.tanh ( x, name=None )

示例:
a # Out[18]: tf.tanh(a) # Out[19]: #

    推荐阅读