学习pytorch11 神经网络-非线性激活

神经网络-非线性激活

B站小土堆学习pytorch视频 非常棒的up主,讲的很详细明白

官网文档

https://pytorch.org/docs/stable/nn.html#non-linear-activations-weighted-sum-nonlinearity

常用1 ReLU

对输入做截断非线性处理,使模型泛化

py 复制代码
>>> m = nn.ReLU()
>>> input = torch.randn(2)
>>> output = m(input)
An implementation of CReLU - https://arxiv.org/abs/1603.05201
>>> m = nn.ReLU()
>>> input = torch.randn(2).unsqueeze(0)
>>> output = torch.cat((m(input), m(-input)))

inplace

inplace=True 原位操作 改变变量本身的值

inplace=False 重新定义一个变量output 承接input-relu后的值,一般默认为False,保留输入数据

常用2 Sigmoid

py 复制代码
>>> m = nn.Sigmoid()
>>> input = torch.randn(2)
>>> output = m(input)

弹幕:

激活层的作用是放大不同类别的得分差异

二分类输出层用sigmoid 隐藏层用relu

负值的来源:输入数据;卷积核;归一化;反向梯度下降导致负值;【不确定】

reshape(input, (-1,1,2,2))是将input这个22的张量转化为-1 12 2的张量,其中-1表示张量元素个数除以其他维度大小的乘积,即"-1" == 22/(12*2) = 1

非线性变化主要目的:为我们的网络引入非线性特征 非线性越多才能训练不同的非线性曲线或者说特征,模型泛化能力才好。

代码

py 复制代码
import torch
import torchvision.transforms
from torch import nn
from torch.nn import ReLU, Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
from torchvision import datasets

test_set = datasets.CIFAR10('./dataset', train=False, transform=torchvision.transforms.ToTensor(), download=True)
dataloader = DataLoader(test_set, batch_size=64, drop_last=True)

class Activation(nn.Module):
    def __init__(self):
        super(Activation, self).__init__()
        self.relu1 = ReLU(inplace=False)
        self.sigmoid1 = Sigmoid()

    def forward(self, input):
        # output1 = self.relu1(input)
        output2 = self.sigmoid1(input)
        # return output1
        return output2

writer = SummaryWriter('logs')
step = 0
activate = Activation()
for data in dataloader:
    imgs, target = data
    writer.add_images("input", imgs, global_step=step)
    output = activate(imgs)
    # writer.add_images("output1", output, global_step=step)
    writer.add_images("output2", output, global_step=step)
    step += 1
writer.close()

logs

相关推荐
IvorySQL34 分钟前
PG 日报|新增 VACUUM 全维度统计信息补丁迭代
数据库·人工智能·postgresql·ivorysql
QYR_111 小时前
2026年全球氧化锆增韧氧化铝陶瓷市场规模达1.63亿美元,高端制造需求驱动行业持续增长
大数据·人工智能
空中湖1 小时前
AI是如何思考的|AI Agent与AGI:从对话到行动的进阶之路
人工智能·agi
Z-D-K1 小时前
我认为的AGI
人工智能·ai·人机交互·agent·agi
小北的AI科技分享1 小时前
2026视觉检测设备厂家排名:四大主流品牌技术与产品深度测评
人工智能·计算机视觉·视觉检测
江畔柳前堤2 小时前
GO01-Go 语言与主流编程语言深度对比
开发语言·人工智能·后端·微服务·云原生·golang·go
山东云弈创峰科技2 小时前
山东云弈创峰:跨境电商AI自动化中的环境隔离与风控架构
人工智能·架构·自动化
水如烟2 小时前
孤能子视角:三十六计之反客为主——拓扑结构重构
人工智能
世界哪有真情2 小时前
拿人类意识卡 AI?等于用 bug 验收正式产品
前端·人工智能·后端
故乡de云3 小时前
IntelliJ IDEA 接入 Code0:OpenAI 兼容接口的配置、模型名与常见错误排查
人工智能