本文是在GPU版本的Tensorflow = 2.6.2 , 英伟达显卡驱动CUDA版本 =11.6,Python版本 = 3.6, 显卡为3060的环境下进行验证实验的!!!
一、sigmoid函数
1.激活函数曲线
激活函数的作用是能够给神经网络加入一些非线性因素使得神经网络可以更好的解决更为复杂的问题,解决非线性问题,sigmoid激活函数曲线如图所示其中x可以是从正无穷到负无穷,经过Sigmoid函数的输出值会落在0~1的区间里。

2.激活函数形式
在Tensorflow中,Sigmoid对应的函数为 tf.nn.sigmoid(input_data) ,其函数形式如下所示:tf.nn.sigmiod(input_data, name=None), input_data即输入的tensor,name即操作节点的名称
通过sigmoid激活函数将其映射到0-1范围内,并输出映射后的值
import tensorflow.compat.v1 as tf
tf.disable_eager_execution()
input_data = tf.constant([[0, 10, -10], [1, 2, 3]], dtype=tf.float32)
output = tf.nn.sigmoid(input_data)
with tf.Session() as sess:
print(sess.run(output))
程序运行结果为:
[[5.0000000e-01 9.9995458e-01 4.5399931e-05]
[7.3105860e-01 8.8079709e-01 9.5257413e-01]]
二、Tanh函数
1.激活函数曲线
Tanh激活函数是Sigmoid函数的升级版本,由于Sigmoid激活函数的范围在0-1之间,而Tanh激活函数的范围在-1-1之间。

2.激活函数形式
在Tensorflow中,Tanh对应的函数为 tf.nn.tanh(input_data) ,其函数形式如下所示:tf.nn.tanh(input_data, name=None), input_data即输入的tensor,name即操作节点的名称。
通过Tanh激活函数将其映射到-1-1范围内,并输出映射后的值
import tensorflow.compat.v1 as tf
tf.disable_eager_execution()
input_data = tf.constant([[0, 10, -10], [1, 2, 3]], dtype=tf.float32)
output = tf.nn.tanh(input_data)
with tf.Session() as sess:
print(sess.run(output))
程序运行结果为:
[[ 0. 1. -1. ]
[ 0.7615942 0.9640276 0.9950547]]
二、Relu函数
1.激活函数曲线
Relu激活函数形式非常简单,大于0的保留,否则一律为0,该函数对正向信号的重视,忽略对负向信号的特征,与我们人类神经元细胞对信号的反映极其相似,所以在神经网络中取得了很好的拟合效果。

2.激活函数形式
在Tensorflow中,Relu对应的函数为 tf.nn.relu(input_data) ,其函数形式如下所示:tf.nn.relu(input_data, name=None), input_data即输入的tensor,name即操作节点的名称
通过Relu激活函数使其能自动的忽略负,并输出映射后的值
import tensorflow.compat.v1 as tf
tf.disable_eager_execution()
input_data = tf.constant([[0, 10, -10], [1, 2, 3]])
output = tf.nn.relu(input_data)
with tf.Session() as sess:
print(sess.run(output))
程序运行结果为:
[[ 0 10 0]
[ 1 2 3]]
本文介绍了在Tensorflow中常用的三种激活函数:Sigmoid、Tanh和Relu。详细讲解了每种函数的特点、数学形式及其实现方法,并给出了具体的运行实例。
1万+

被折叠的 条评论
为什么被折叠?



