二、初始PyTorch之激活函数

激活函数σ:

常见的激活函数
常见的激活函数题

1.Sigmoid/logistic 区间[0, 1]

f(x)=\sigma (x)=\frac{1}{1+e^{-x}}

求导:

a=torch.linspace(-100,100,10)
torch.sigmoid(a)

原始a:

sigmoid后:

缺陷:当x->+∞时,σ'=0,导致参数θ=θ-lr*θ'得不到更新,也就是梯度离散问题。

2.Tanh   区间[-1, 1]

f(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}=2*\sigma (2x)-1

求导:

a=torch.linspace(-1,1,10)
torch.tanh(a)

tanh后:

3.Relu(常用***)

from torch.nn import functional as F
a=torch.linspace(-1,1,10)
F.relu(a) #等同于torch.relu(a)

relu后:

4.softmax

用于处理分类问题,总概率和相加为1。

softmax函数:

求导分为i=j和i≠j:

F.softmax(a, dim=0)


//p.backword(),torch把梯度信息保存在W.grad后会把该图的梯度信息清除掉,需要设置retain_graph = True才能二次调用backward。

//grad or backward传入的feature只能为一个量,例如p是一个[3]的量,所以不能传[p],需要传p[1]。

发布了14 篇原创文章 · 获赞 2 · 访问量 2890

猜你喜欢

转载自blog.csdn.net/sleepinghm/article/details/105053111