Pytorch学习笔记【4】:激活函数

 一. 激活函数的作用

      神经网络之间的传递其实是线性的,但是我们有时候需要 模拟的图形或许是非线性的,这种时候怎么办呢? 这种时候就需要 激活函数站出来了。激活函数就能够实现非线性化。让我们的神经网络能够支持更多的图形模式。 

 

二. 激活函数的 种类

      常用的激活函数是四类:

      1. Relu   2. Sigmoid   3. Tanh   4. Softplus

      我们来看看他们的图形长什么样子:

Pytorch学习笔记【4】:激活函数_第1张图片

 

三. 我们用具体代码看看,经过激活函数后,数据都变成了什么样

import torch
import torch.nn.functional as F
from torch.autograd import Variable
import matplotlib.pyplot as plt

# 在-5到5之间随机生成线性数据
x = torch.linspace(-5,5,200) # 生成200个数据
x = Variable(x)
x_np = x.data.numpy()

# 经典的激活函数
y_relu = torch.relu(x).data.numpy()
y_sigmoid = torch.sigmoid(x).data.numpy()
y_tanh = torch.tanh(x).data.numpy()
y_softplus = F.softplus(x).data.numpy() # torch中没有softplus这个激活函数

# 使用matlab画出这些图形
plt.figure(1,figsize=(8,6))
plt.subplot(221)
plt.plot(x_np,y_relu,c='red',label='relu')
plt.ylim(-1,5)
plt.legend(loc = 'best')

plt.subplot(222)
plt.plot(x_np,y_sigmoid,c='red',label='sigmoid')
plt.ylim(-0.2,1.2)
plt.legend(loc = 'best')

plt.subplot(223)
plt.plot(x_np,y_tanh,c='red',label='tanh')
plt.ylim(-1.2,1.2)
plt.legend(loc = 'best')

plt.subplot(224)
plt.plot(x_np,y_softplus,c='red',label='softplus')
plt.ylim(-0.2,6)
plt.legend(loc = 'best')

plt.show()

运行结果:

Pytorch学习笔记【4】:激活函数_第2张图片

你可能感兴趣的:(#,Pytorch)