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

神经网络 torch.nn---Non-Linear Activations (ReLU)

ReLU — PyTorch 2.3 documentation

torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io)

非线性变换的目的

  • 非线性变换的目的是为神经网络引入一些非线性特征,使其训练出一些符合各种曲线或各种特征的模型。

  • 换句话来说,如果模型都是直线特征的话,它的泛化能力会不够好

torch.nn.ReLU

torch.nn.ReLU(inplace=False)torch.nn.modules.activation — PyTorch 2.3 documentation

inplace参数:

  • inplace=True,则会自动替换输入时的变量参数。如:input=-1,ReLU(input,implace=True),那么输出后,input=output=0

  • inplace=True,则不替换输入时的变量参数。如:input=-1,ReLU(input,implace=True),那么输出后,input=-1,output=0

作用:

  • input <= 0, output = 0
  • input  >  0,   output = input

计算公式:

程序代码:

示例1:

import torch
from torch import nn
from torch.nn import ReLUinput =torch.tensor([[1, -0.5],[-1, 3]
])
print(input.shape)input = torch.reshape(input,(-1,1,2,2))
print(input.shape)class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.relu1 = ReLU()  #inplace bool   原数据是否被替换def forward(self, input):output = self.relu1(input)return outputtudui = Tudui()
output = tudui(input)
print(output)

输出:

示例2:

import torchvision
from torch import nn
from torch.nn import ReLU, Sigmoid
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriterdataset = torchvision.datasets.CIFAR10(root='./dataset', train=False, transform=torchvision.transforms.ToTensor(),download=True)
dataloader = DataLoader(dataset, batch_size=64)
# shuffle 是否打乱   False不打乱
# drop_last 最后一轮数据不够时,是否舍弃 true舍弃class Tudui(nn.Module):def __init__(self):super(Tudui, self).__init__()self.sigmoid1 = Sigmoid()  #inplace bool   原数据是否被替换def forward(self, input):output = self.sigmoid1(input)return outputtudui = Tudui()
step = 1
writer = SummaryWriter('logs')
for data in dataloader:imgs, targets = datawriter.add_images('inputs',imgs,step)outputs = tudui(imgs)writer.add_images("outputs",outputs,step)step += 1writer.close()

在TensorBoard上看输出内容:

相关文章:

  • Android Studio Jellyfish版本修改project使用特定jdk版本的步骤
  • UART基本定义、三种编程方式、freertos内怎么用、怎么封装
  • [数据集][目标检测]室内积水检测数据集VOC+YOLO格式761张1类别
  • 44【Aseprite 作图】樱花丸子——拆解
  • STM32-电灯,仿真
  • 每日两题7
  • 【因果推断python】26_双重稳健估计1
  • 速盾:图片cdn加速 免费
  • AWS EMR Serverless
  • 23种设计模式——创建型模式
  • JavaEE——声明式事务管理案例:实现用户登录
  • 打开C# 大门:Hallo, World!
  • 【Pycharm】功能介绍
  • 【全网最简单的解决办法】vscode中点击运行出现仅当从 VS 开发人员命令提示符处运行 VS Code 时,cl.exe 生成和调试才可用
  • TypeScript基础教程学习
  • python3.6+scrapy+mysql 爬虫实战
  • 4. 路由到控制器 - Laravel从零开始教程
  • CSS 三角实现
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • JS 面试题总结
  • MySQL用户中的%到底包不包括localhost?
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python学习笔记 字符串拼接
  • windows下mongoDB的环境配置
  • 二维平面内的碰撞检测【一】
  • 高度不固定时垂直居中
  • 将 Measurements 和 Units 应用到物理学
  • 时间复杂度与空间复杂度分析
  • 一道闭包题引发的思考
  • 用jQuery怎么做到前后端分离
  • 带你开发类似Pokemon Go的AR游戏
  • 关于Android全面屏虚拟导航栏的适配总结
  • !!Dom4j 学习笔记
  • (1)Android开发优化---------UI优化
  • (2)nginx 安装、启停
  • (C语言)共用体union的用法举例
  • (python)数据结构---字典
  • (TOJ2804)Even? Odd?
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (四)Controller接口控制器详解(三)
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转) 深度模型优化性能 调参
  • .bat文件调用java类的main方法
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .java 9 找不到符号_java找不到符号
  • .Net 4.0并行库实用性演练
  • .net web项目 调用webService
  • .NET技术成长路线架构图
  • .NET文档生成工具ADB使用图文教程
  • @Autowired 与@Resource的区别
  • @Documented注解的作用
  • @SuppressWarnings注解
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解