前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytorch基础知识-常见激活函数(下)

pytorch基础知识-常见激活函数(下)

作者头像
用户6719124
发布2019-11-17 22:42:17
5660
发布2019-11-17 22:42:17
举报
文章被收录于专栏:python pytorch AI机器学习实践

tanh函数也是较常用的函数,尤其是在循环网络神经(RNN)中。

其表达式为:

它是由sigmoid表达式变化而来的。是将sigmoid的x轴压缩两倍、y轴增加2倍而来的。

其函数图像为

它的y轴变化范围是-1至1,导数变化范围与sigmoid类似。

tanh导数的推导过程为:

这里不再赘述。

再以代码表示tahn的使用

代码语言:javascript
复制
a = torch.linspace(-1, 1, 10)
# 从-1至1的区间内,等间距的取10个数
print(a)
# 输出a

输出为

代码语言:javascript
复制
tensor([-1.0000, -0.7778, -0.5556, -0.3333, -0.1111,  0.1111,  0.3333,  0.5556,
         0.7778,  1.0000])

转化为tahn导数

代码语言:javascript
复制
print(torch.tanh(a))

输出为

代码语言:javascript
复制
tensor([-0.7616, -0.6514, -0.5047, -0.3215, -0.1107,  0.1107,  0.3215,  0.5047,
         0.6514,  0.7616])

结果范围在-0.8至0.8之间。

下面再介绍一个非常简单,但在深度学习中使用最为广泛的一个激活函数:relu函数

Relu函数全称:Rectified Linear Unit(整形的线性单元)

其函数表达式为

其函数图像为

由图像可以直观的看出,当数值较小时,直接不响应,而当达到阈值后,线性响应。

relu函数使用广泛的原因在于其导数为:

在进行求导时,relu函数计算非常简单,且没有放大和缩小的功能,这样不易发生梯度离散和梯度爆炸的现象。

relu函数的使用:

代码语言:javascript
复制
a = torch.linspace(-1, 1, 10)
# 从-1至1的区间内,等间距的取10个数
print(a)
# 输出a
print(torch.relu(a))

输出为

代码语言:javascript
复制
tensor([-1.0000, -0.7778, -0.5556, -0.3333, -0.1111,  0.1111,  0.3333,  0.5556,
         0.7778,  1.0000])
tensor([0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.1111, 0.3333, 0.5556, 0.7778,
        1.0000])

由输出结果可见,当x小于0时,输出直接为0,当x大于0时,进行线性输出。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python pytorch AI机器学习实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档