码迷,mamicode.com
首页 > 其他好文 > 详细

sigmod、tanh、ReLU激活函数的实现

时间:2020-06-30 11:16:42      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:otl   load   tps   plt   its   png   size   sub   inf   

import torch
import torch.nn.functional as F
import matplotlib.pyplot as plt
import numpy as np
x = torch.linspace(-10,10,60)
fig = plt.figure(figsize=(14,4))
ae = fig.add_subplot(131)  #sigmod激活函数
ax = plt.gca()
ax.spines[‘top‘].set_color(‘none‘)
ax.spines[‘right‘].set_color(‘none‘)
ax.xaxis.set_ticks_position(‘bottom‘)
ax.spines[‘bottom‘].set_position((‘data‘,0))
ax.yaxis.set_ticks_position(‘left‘)
ax.spines[‘left‘].set_position((‘data‘,0))
y = torch.sigmoid(x)
plt.plot(x.numpy(),y.numpy())
plt.ylim((0,1))

ae = fig.add_subplot(132)  #tanh激活函数
ax = plt.gca()
ax.spines[‘top‘].set_color(‘none‘)
ax.spines[‘right‘].set_color(‘none‘)
ax.xaxis.set_ticks_position(‘bottom‘)
ax.spines[‘bottom‘].set_position((‘data‘,0))
ax.yaxis.set_ticks_position(‘left‘)
ax.spines[‘left‘].set_position((‘data‘,0))
y1 = torch.tanh(x)
plt.plot(x.numpy(),y1.numpy())
plt.ylim((-1,1))

ae = fig.add_subplot(133)  # ReLU激活函数
ax = plt.gca()
ax.spines[‘top‘].set_color(‘none‘)
ax.spines[‘right‘].set_color(‘none‘)
ax.xaxis.set_ticks_position(‘bottom‘)
ax.spines[‘bottom‘].set_position((‘data‘,0))
ax.yaxis.set_ticks_position(‘left‘)
ax.spines[‘left‘].set_position((‘data‘,0))
y2 = F.relu(x)
plt.plot(x.numpy(),y2.numpy())
plt.ylim((-1,5))

plt.show()

输出:

技术图片

sigmod公式:

技术图片

一般会造成梯度消失。

tanh公式:

技术图片

 

tanh是以0为中心点,如果使用tanh作为激活函数,能够起到归一化(均值为0)的效果。

Relu(Rectified Linear Units)修正线性单元

技术图片 导数大于0时1,小于0时0。

 

sigmod、tanh、ReLU激活函数的实现

标签:otl   load   tps   plt   its   png   size   sub   inf   

原文地址:https://www.cnblogs.com/peixu/p/13212178.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!