【学习笔记】【Pytorch】九、非线性激活
学习地址
主要内容
一、前言
我们知道人类大脑中的神经元之间的连接只有在电信号达到每一阈值后才会被激活,激活函数就是模仿这一机制的一个阈值函数。
如果我们的神经网络只使用线性激活函数,则无论多深的网络最终输出也不过是所以输入的简单线性组合,这并不具有拟合任意函数的能力,因此我们需要引入非线性激活函数。
非线性激活函数一般接在全连接层、卷积层、循环层的后面,用以选择性地激活神经网络中的神经元,同时起到限制每个神经元输出值的范围的作用。
激活函数是加入非线性因素,线性并不能很好的拟合现实的情况,加入非线性因素可以增强拟合能力,提高泛化能力。
二、Pytorch的非线性激活
参考:torch.nn
- 二分类输出层用sigmod,多分类用softmax,隐藏层用ReLu。
- input形状要求任意数量维度。
三、ReLU类的使用
from torch.nn import ReLU
作用:对输入运用ReLU函数。
1.使用说明
【实例化】ReLU(inplace: bool = False)
- 作用:创建一个实例。
- inplace:将input变成output值,input保持不变。
2.代码实现
import torch
from torch import nn
from torch.nn import ReLU
class Model(nn.Module):
def __init__