当前位置: 首页 > article >正文

18.神经网络 - 非线性激活

神经网络 - 非线性激活

使用到的pytorch网站:

  • Padding Layers(对输入图像进行填充的各种方式)
    几乎用不到,nn.ZeroPad2d(在输入tensor数据类型周围用0填充)
    nn.ConstantPad2d(用常数填充)
    在 Conv2d 中可以实现,故不常用
  • Non-linear Activations (weighted sum, nonlinearity)
  • Non-linear Activations (other)

1.最常见的非线性激活:RELU

ReLU — PyTorch 1.10 documentation

image-20240726183531639

输入:(N,*) N 为 batch_size,*不限制可以是任意

代码举例:RELU

import torch
from torch import nn
from torch.nn import ReLU
 
input = torch.tensor([[1,-0.5],
                      [-1,3]])
input = torch.reshape(input,(-1,1,2,2))  #input必须要指定batch_size,-1表示batch_size自己算,1表示是1维的
print(input.shape)   #torch.Size([1, 1, 2, 2])
 
# 搭建神经网络
class Tudui(nn.Module):
    def __init__(self):
        super(Tudui, self).__init__()
        self.relu1 = ReLU()  #inplace默认为False
    def forward(self,input):
        output = self.relu1(input)
        return output
 
# 创建网络
tudui = Tudui()
output = tudui(input)
print(output)

image-20240808150737474

运行结果:

image-20240808150758052

2.Sigmoid

Sigmoid — PyTorch 1.10 documentation

image-20240726183636666

输入:(N,*) N 为 batch_size,*不限制

代码举例:Sigmoid(数据集CIFAR10)

import torch
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("../data",train=False,download=True,transform=torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset,batch_size=64)
 
# 搭建神经网络
class Tudui(nn.Module):
    def __init__(self):
        super(Tudui, self).__init__()
        self.sigmoid1 = Sigmoid()  #inplace默认为False
    def forward(self,input):
        output = self.sigmoid1(input)
        return output
 
# 创建网络
tudui = Tudui()
 
writer = SummaryWriter("../logs_sigmoid")
step = 0
for data in dataloader:
    imgs,targets = data
    writer.add_images("input",imgs,global_step=step)
    output = tudui(imgs)
    writer.add_images("output",output,step)
    step = step + 1
 
writer.close()

image-20240808151259840

运行后在 terminal 里输入:

tensorboard --logdir=logs_sigmoid

打开网址:

image-20240808151354823

关于inplace

tensorboard --logdir=logs_sigmoid


打开网址:

[外链图片转存中...(img-9qQDN4dS-1724861715512)]

### 关于inplace

![img](https://i-blog.csdnimg.cn/blog_migrate/052c13a050e7ee817388e7cbadf6fa12.png)

http://www.kler.cn/a/282880.html

相关文章:

  • Mysql每日一题(行程与用户,困难※)
  • Javascript中的深浅拷贝以及实现方法
  • 算法训练(leetcode)二刷第二十六天 | *452. 用最少数量的箭引爆气球、435. 无重叠区间、*763. 划分字母区间
  • PdServer:调用MidjourneyAPI完成静夜思图文生成
  • SQL中的时间类型:深入解析与应用
  • sql专题 之 where和join on
  • 【机器学习】梯度下降算法
  • 源码编译并安装Squid的方法
  • BEVDet4D:多帧时序信息融合方法详解
  • 富格林:正规方式顺利盈利出金
  • 性能测试的基本概念
  • Pycharm安装报错:Cannot detect a launch configuration 解决办法
  • 吴恩达机器学习笔记 四十五 基于内容的过滤的tensorFlow实现
  • 怎么解决 hash 碰撞,用 C++ 实现 hashMap?
  • Nosql数据库redis集群配置详解
  • Nginx轮询负载均衡配置指南:实现高效请求分发
  • docker常用命令使用dockerfile构建镜像,推送到私有镜像仓库
  • 【AI绘画】Midjourney前置指令/describe、/shorten详解
  • 适配算能BM1684开发板,bmodel推理模型转换
  • 矩阵分块乘法的证明
  • C语言典型例题55
  • VScode打开json文件和md文件直观展示方法
  • 免费批量Excel文件合并、拆分工具
  • Linux系统结构
  • 加密软件的特殊功能有哪些
  • STM32 - 按键控制LED灯