31 lines
1.7 KiB
Python
31 lines
1.7 KiB
Python
"""
|
||
Tanh优点:
|
||
|
||
1、在分类任务中,双曲正切函数(Tanh)逐渐取代 Sigmoid 函数作为标准的激活函数,其具有很多神经网络所钟爱的特征。它是完全可微分的,反对称,对称中心在原点。
|
||
|
||
2、输出是S型曲线,具备打破网络层与网络层之间的线性关系,可以把网络层输出非线形地映射到 (−1,1) 区间里。负输入将被强映射为负,而零输入被映射为接近零;tanh 的输出间隔为1且值域是以0为中心的[-1,1](可以解决Sigmoid激活函数输出不以0为中心的问题。)
|
||
|
||
3、在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。
|
||
|
||
Tanh不足:
|
||
|
||
1、当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。
|
||
|
||
2、Tanh函数也需要进行指数运算,所以其也会存在计算复杂度高且计算量大的问题。
|
||
|
||
3、当神经网络的层数增多的时候,由于在进行反向传播的时候,链式求导,多项相乘,函数进入饱和区(导数接近于零的地方)就会逐层传递,这种现象被称为梯度消失。
|
||
————————————————
|
||
版权声明:本文为CSDN博主「小wu学cv」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
|
||
原文链接:https://blog.csdn.net/caip12999203000/article/details/127067360
|
||
|
||
"""
|
||
import torch
|
||
import torch.nn as nn
|
||
|
||
# Tanh函数
|
||
print('*' * 25 + "Tanh函数" + "*" * 25)
|
||
m = nn.Tanh()
|
||
input = torch.randn(2)
|
||
print("原:", input)
|
||
print("结果:", m(input))
|
||
print('*' * 50) |