PyTorch快速入门教程【小土堆】-神经网络-非线性激活

1.激活函数

(1)作用

引入激活函数是为了增加神经网络模型的非线性。激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中,符合各种非线性曲线,符合各种特征,增强模型的泛化性。

(2)常用激活函数

(3) ReLU,Sigmoid

input(N,*) N 代表batch_size

output(N,*)N 代表batch_size

ReLU(inplace)
参数 inplace=true 运算结果替换input inplace=False input不变,运算结果直接给output,默认为false

2.代码示例

import torch
import torchvision.datasets
from torch import nn
from torch.nn import ReLU, Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter

input=torch.tensor([[1,-0.5],
                   [-1,3]])
input=torch.reshape(input,(-1,1,2,2))
#batch_size=-1即系统自己算batch_size ,channel=1,2*2
print(input.shape)
#构建神经网络

dataset=torchvision.datasets.CIFAR10("dataset",train=False,transform=torchvision.transforms.ToTensor())
dataloader=DataLoader(dataset,batch_size=64)




class Tudui(nn.Module):
    def __init__(self) -> None:
        super().__init__()
        self.relu1=ReLU()
        #inplace=true 运算结果替换input  inplace=False input不变,运算结果直接给output,默认为false
        self.sigmoid1=Sigmoid()

    def forward(self,input):
       # output=self.relu1(input) #数字形式举例
        output=self.sigmoid1(input) #图像形式举例
        return output
#类实例化,数字形式举例
tudui=Tudui()
output=tudui(input)
print(output)
#图像形式举例
tu=Tudui()
writer=SummaryWriter("logs_relu")
step=0
for data in dataloader:
    imgs,targets=data
    writer.add_images("input",imgs,step)
    output=tu(imgs)
    writer.add_images("output",output,step)
    step=step+1

writer.close()

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值