栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878942.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号