神经网络 非线性激活 P20 —— 小土堆笔记

本文介绍了ReLU(RectifiedLinearUnit)和Sigmoid函数在神经网络中的常见使用,包括ReLU的参数理解(如inplace选项)、如何在PyTorch中实现ReLU模块,以及如何使用Sigmoid处理CIFAR10图像数据,并通过TensorBoard展示结果。
摘要由CSDN通过智能技术生成

1.常见的功能

nn.ReLU:小于0,归零

 nn.Sigmoid


二分类输出层用sigmod,隐藏层用ReLu(弹幕上说的

2.Relu的参数

(1)inplace 原地替换

3.Relu的构建

import torch
from torch import nn

data = torch.tensor([[1, 2, 3],
                     [2, 4, -10],
                     [-1, 2, -9]])

print(data)


class Relu(nn.Module):
    def __init__(self):
        super().__init__()
        self.relu1 = nn.ReLU(inplace=False)

    def forward(self, input):
        output = self.relu1(input)
        return output


Relu1 = Relu()
output = Relu1(data)
print(output)

输出结果

4.sigmoid处理图像

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

# 数据集
dataset = torchvision.datasets.CIFAR10('../dataset', train=False, transform=torchvision.transforms.ToTensor(),
                                       download=False)
dataloader = DataLoader(dataset, batch_size=10, shuffle=True)


class Sigmoid1(nn.Module):
    def __init__(self):
        super().__init__()
        self.sigmoid = Sigmoid()

    def forward(self, input):
        output = self.sigmoid(input)
        return output


writer = SummaryWriter('../Sigmoid')
Sigmoid_image = Sigmoid1()
step = 0

for data in dataloader:
    imgs, targets = data
    writer.add_images('Input image', imgs, step)
    output = Sigmoid_image(imgs)
    writer.add_images('output image', output, step)
    step = step + 1

writer.close()

结果展示

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值