31 lines
1.9 KiB
Python
31 lines
1.9 KiB
Python
import torch
|
||
import torch.nn as nn
|
||
|
||
# Sigmoid函数
|
||
print('*' * 25 + "Sigmoid函数" + "*" * 25)
|
||
m = nn.Sigmoid()
|
||
input = torch.randn(2)
|
||
print("原:", input)
|
||
print("结果:", m(input))
|
||
print('*' * 50)
|
||
|
||
"""
|
||
Sigmoid优点:
|
||
|
||
1、其值域为[0,1],非常适合作为模型的输出函数用于输出一个(0,1)范围内的概率值,可用于将预测概率作为输出的模型,比如用于表示二分类的类别或者用于表示置信度。
|
||
|
||
2、Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在0到1,因此它对每个神经元的输出进行了归一化。
|
||
|
||
3、该函数是连续可导的(即可微),可以提供非常平滑的梯度值,防止模型训练过程中出现突变的梯度(即避免「跳跃」的输出值)。
|
||
|
||
Sigmoid不足:
|
||
|
||
1、从其导数的函数图像上可以看到,其导数的最大值只有0.25,而且当x在[-5,5]的范围外时其导数值就已经几乎接近于0了。这种情况会导致训练过程中神经元处于一种饱和状态,反向传播时其权重几乎得不到更新,从而使得模型变得难以训练,这种现象被称为梯度消失问题。
|
||
|
||
2、其输出不是以0为中心而是都大于0的(这会降低权重更新的效率),这样下一层的神经元会得到上一层输出的全正信号作为输入,所以Sigmoid激活函数不适合放在神经网络的前面层而一般是放在最后的输出层中使用。
|
||
|
||
3、需要进行指数运算(计算机运行得较慢),计算量大及计算复杂度高,训练耗时;指数的越大其倒数就越小,容易产生梯度消失。
|
||
————————————————
|
||
版权声明:本文为CSDN博主「小wu学cv」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
|
||
原文链接:https://blog.csdn.net/caip12999203000/article/details/127067360
|
||
""" |