【学习笔记】【Pytorch】九、非线性激活

news2024/11/19 1:42:02

【学习笔记】【Pytorch】九、非线性激活

  • 学习地址
  • 主要内容
    • 一、前言
    • 二、Pytorch的非线性激活
    • 三、nn.ReLU类的使用
      • 1.使用说明
      • 2.代码实现
    • 二、nn.Sigmoid类的使用
      • 1.使用说明
      • 2.代码实现

学习地址

PyTorch深度学习快速入门教程【小土堆】.

主要内容

一、前言

我们知道人类大脑中的神经元之间的连接只有在电信号达到每一阈值后才会被激活,激活函数就是模仿这一机制的一个阈值函数。

如果我们的神经网络只使用线性激活函数,则无论多深的网络最终输出也不过是所以输入的简单线性组合,这并不具有拟合任意函数的能力,因此我们需要引入非线性激活函数。

非线性激活函数一般接在全连接层、卷积层、循环层的后面,用以选择性地激活神经网络中的神经元,同时起到限制每个神经元输出值的范围的作用。

激活函数是加入非线性因素,线性并不能很好的拟合现实的情况,加入非线性因素可以增强拟合能力,提高泛化能力。

二、Pytorch的非线性激活

参考:torch.nn

  • 二分类输出层用sigmod,多分类用softmax,隐藏层用ReLu。
  • input形状要求任意数量维度。

三、nn.ReLU类的使用

from torch.nn import ReLU

官方解释
在这里插入图片描述

作用:对输入运用ReLU函数。

1.使用说明

【实例化】ReLU(inplace: bool = False)

  • 作用:创建一个实例。
  • inplace:将input变成output值,input保持不变。
    在这里插入图片描述

2.代码实现

import torch
from torch import nn
from torch.nn import ReLU


class Model(nn.Module):

    def __init__(self) -> None:
        super().__init__()
        self.relu1 = ReLU()  # 创建一个实例

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


input = torch.tensor([[1, -0.5],
                      [-1, 3]])
print(input.shape)

model = Model()  # 创建一个实例
output = model(input)
print(output)

输出

torch.Size([2, 2])
tensor([[1., 0.],
        [0., 3.]])

二、nn.Sigmoid类的使用

from torch.nn import Sigmoid

1.使用说明

官方解释
在这里插入图片描述

2.代码实现

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


class Model(nn.Module):

    def __init__(self) -> None:
        super().__init__()
        self.sigmoid1 = Sigmoid()  # 创建一个实例

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


dataset = torchvision.datasets.CIFAR10(root="./dataset", train=False,
                                       transform=torchvision.transforms.ToTensor())  # 创建实例
dataloader = DataLoader(dataset, batch_size=64)  # 创建实例

model = Model()  # 创建一个实例

step = 0
writer = SummaryWriter("./dataloader_logs")  # 创建实例
for data in dataloader:
    imgs, targets = data
    writer.add_images("input", imgs, step)
    output = model(imgs)  # 父类__call__
    # 池化后,通道数不会变,不用reshape
    writer.add_images("output", output, step)
    step += 1

writer.close()


# tensorboard命令:tensorboard --logdir=dataloader_logs --port=6007

TensorBoard输出
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/163589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【RabbitMQ】基础篇,学习纪录+笔记

目录 一.介绍 1.1MQ概述 1.2MQ优势和劣势 1.3常见的 MQ 产品 1.4RabbitMQ简介 1.5RabbitMQ中的相关概念 1.6RabbitMQ的安装 二.快速入门 2.1入门程序 2.2工作模式 2.2.1Work queues 工作队列模式 2.2.2Pub/Sub 订阅模式 2.2.3Routing 路由模式 2.2.4Topics 通配符…

vite 4.0 来了,带你手撕 create-vite 源码

通过本文你将了解到以下内容: 1,npm create 具体执行流程2,minimist、prompts、kolorist三个库3,create-vite 的源码分析 vite源码下载: //复制一份vite源码到自己的本地 git clone https://github.com/vitejs/vit…

抗击洪涝灾害,河道水雨情动态在线监测解决方案

一、项目背景我国是个多山的国家且位于东南季风区,降雨分布广泛还分布不均匀,这样一来使汛期高度集中。导致很多沿海城市以及临近河道的地区面临着河道决堤的威胁如何实时监测河道雨水情动态成了让人头疼的问题。在2022年1月,发改委、水利部在…

基于jsp+mysql+Spring的SpringBoot招聘网站项目(完整源码+sql)

基于jspmysqlSpring的SpringBoot招聘网站项目(完整源码sql)主要实现了管理员登录,简历管理,问答管理,职位管理,用户管理,职位申请进度更新,查看简历 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀…

Exchanges

文章目录ExchangesExchanges的类型FanoutDirectTopicExchanges (交换机)RabbitMQ 消息传递模型的核心思想是: 生产者生产的消息从不会直接发送到队列。 Exchanges的类型 直接(direct),主题(topic),标题(headers),扇出(fanout)&…

硅烷聚乙二醇硅烷,Silane-PEG-Silane同官能团科研试剂,化学结构式

产品名称:硅烷聚乙二醇硅烷,双硅烷聚乙二醇 中文别名:硅烷PEG硅烷,双硅烷聚乙二醇 英文名称:Silane-PEG-Silane 分子量:1k,2k,3.4k,5k,10k,20k…

面对一堆烂代码,重构,还是重新开发?

hello,大家好,我是张张,「架构精进之路」公号作者。 1、烂代码的形成 写烂代码很容易,但代码写成一坨屎,还能正常运行,那就要有点水平才行。 尤其是一些经验不足的新手,根本不在乎代码质量的重要…

小年 —— 送日历福利啦!(acwing)

acwing每日一题集日历除夕夜瓜分10000ac币啦! 手慢就没了┗|`O′|┛ 嗷~~ 上次在acwing上面留言送日历,结果送着送着,连老本都给送没了,这波集齐了把其他的也给发出来了 AcWing【集日历瓜分10000AC币活动】赠送1月日历…

基于Java SSM springboot健身管理系统设计和实现

基于Java SSM springboot健身管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联…

Uniswap v3 详解(四):交易手续费

以普通用户的视角来看,对比 Uniswap v2,Uniswap v3 在手续费方面做了如下改动: 添加流动性时,手续费可以有 3个级别供选择:0.05%, 0.3% 和 1%,未来可以通过治理加入更多可选的手续费率Uniswap v2 中手续费…

《啊哈算法》第三章--枚举很暴力

从无到有学算法(看漫画学算法) (๑•̀ㅂ•́)و✧ 爱要坦荡荡 - 萧潇 - 单曲 - 网易云音乐 一,坑爹的奥数 枚举算法又叫穷举算法,非常的暴力,它的基本思想是“有序地去尝试每一种可能” 题目1 □3 x 6528 3□ x …

【JavaEE】网络初识之网络通信基础

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【JavaEE】 ✈️✈️本篇内容:网络初识之网络通信基础。 🚀🚀代码存放仓库gitee:JavaEE初阶代码存放! ⛵⛵作者简介…

Uniswap v3 详解(二):创建交易对/提供流动性

前文已经说过 Uniswap v3 的代码架构。一般来说,用户的操作都是从 uniswap-v3-periphery 中的合约开始。 创建交易对 创建交易对的调用流程如下: 用户首先调用 NonfungiblePositionManager 合约的 createAndInitializePoolIfNecessary 方法创建交易对&…

【软件测试】软件测试分类

1. 按照测试对象划分 界面测试 界面测试(简称UI测试),测试用户界面的功能模块的布局是否合理、整体风格是否一致、各个控件的放置位置是 否符合客户使用习惯,此外还要测试界面操作便捷性、导航简单易懂性,页面元素的可用性&…

U3751频谱分析仪

18320918653 U3751 频谱分析仪爱德万U3751特点: 频率范围:9kHz~8GHz 大输入电平:30dBm RBW:300Hz~3MHz 体积小,重量轻(5.6公斤),测量速度快 户外量测:W-CDMA&#xff…

unity日记10(无头盔开发vr XR Device Simulator操作说明| 模之屋模型导入unity )

目录 XR Device Simulator配置参考视频 XR Device Simulator操作方法参考视频 模之屋模型导入unity参考视频 XR Device Simulator操作方法(个人心得) 1.摄像机 1.摄像机左右移动 右键移动鼠标 2.摄像机前后移动 右键滚动滚轮 3.摄像…

Vulnhub之HACKABLE: II

1.信息收集 使用arp-scan扫描存活网段 使用nmap对192.168.239.126进行端口扫描,发现存在21(可匿名登录)、22、80端口 2.漏洞发现 使用ftp 192.168.239.126进行匿名登录,注意:anonymous都要小写。执行dir命令发现CALL.html 执行get CALL…

mybatis 的mapper接口没有实现类,那么他是如何工作的

一、mybatis使用动态代理要实现的功能。 mybatis 的底层实际上运行的还是ibatis,即需要把接口和xml映射翻译成 ibatis 需要的这种格式。 二、mapper接口的动态代理 当使用 sqlSession.getMapper 获取一个Mapper 的时候一般是使用 sqlSession 的 DefaultSqlSession…

K_A11_006 基于STM32等单片机采集雨水模块 串口与OLED0.96双显示

K_A11_006 基于STM32等单片机采集雨水模块 串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明IIC地址/采集通道选择/时序对应程序:四、部分代码说明1、接线说明1.1、STC89C52RC雨水模块1.2、STM32F103C8T6雨水模块五、基础知识学习与相关资料下载六、视频…

电脑开机找不到启动设备怎么办?

如果你的电脑弹出错误消息并提示“找不到启动的设备”,不用担心,本文将告诉你5种不同的方法,可以轻松修复无可引导的设备的问题!“找不到启动设备”是什么意思?可引导设备(又称启动设备)是一种存…