Tan_pytorch_segmentation/pytorch_segmentation/Activation_Function/Tanh.py

31 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
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)