(七)神经网络-非线性激活

【声明】来源b站视频小土堆PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili

非线性激活的作用是给神经网络中引入一些非线性的特质

最常见的nn.ReLU

(七)神经网络-非线性激活_第1张图片

 第二个常用的nn.Sigmoid

(七)神经网络-非线性激活_第2张图片

 以上输入只需要给出batch,其他不做要求

inplace: 是否改变原来的值,为True改变,False不改变

(七)神经网络-非线性激活_第3张图片

  ReLU代码


import torch
from torch import nn
from torch.nn import ReLU

input  = torch.tensor([[1,-0.5],
                       [-1,3]])
#输入一定要有batch,进行尺寸变换
input = torch.reshape(input,(-1,1,2,2))#-1 batchsize自己算
print(input.shape)

class Mymodel(nn.Module):
    def __init__(self):
        super(Mymodel, self).__init__()
        self.relu = ReLU()#inplace默认为False

    def forward(self,input):
        output = self.relu(input)
        return  output
    
mymodel = Mymodel()
output = mymodel(input)
print(output)


结果

负数全部变为0,正数不变

(七)神经网络-非线性激活_第4张图片

 

你可能感兴趣的:(PyTorch,神经网络,深度学习,cnn)