pytorch之relu激活函数

目录

1、relu

2、relu6

3、leaky_relu

4、ELU

5、SELU

6、PReLU


1、relu

ReLU(Rectified Linear Unit)是一种常用的神经网络激活函数,它在PyTorch中被广泛使用。ReLU函数接受一个输入值,如果该值大于零,则返回该值;否则返回零。

在PyTorch中,可以使用torch.relu()函数来应用ReLU激活函数。

import torch as t
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-100,100,1000)
y=t.nn.functional.relu(t.tensor(x,dtype=t.float32)).numpy()
plt.plot(x,y)
plt.title("relu")
plt.xlabel("x")
plt.ylabel("relu(x)")
plt.grid(True)
plt.show()
​

2、relu6

PyTorch中的ReLU6激活函数是一种常用的激活函数,其形式为f(x) = min(max(0, x), 6)。该函数将输入x限制在0和6之间,小于0的值会被截断为0,大于6的值会被截断为6。ReLU6激活函数可以帮助提高模型的非线性表达能力,并且具有较好的稳定性和抗饱和性。在PyTorch中,可以通过torch.nn.ReLU6()函数来使用ReLU6激活函数。

import torch as t
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-100,100,1000)
y=t.nn.functional.relu6(t.tensor(x,dtype=t.float32)).numpy()
plt.plot(x,y)
plt.title("relu6")
plt.xlabel("x")
plt.ylabel("relu6(x)")
plt.grid(True)
plt.show()

3、leaky_relu

leaky_relu是PyTorch中的一种激活函数,用于引入非线性特性。它与传统的ReLU(修正线性单元)相似,但在负数输入时不会完全变为零,而是保留一个小的负斜率。这有助于避免“死亡神经元”,即在训练过程中停止响应的神经元。

在PyTorch中,可以使用torch.nn.functional模块中的leaky_relu函数来使用leaky_relu激活函数。

import torch as t
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-100,100,1000)
y=t.nn.functional.leaky_relu(t.tensor(x,dtype=t.float32)).numpy()
plt.plot(x,y)
plt.title("leaky_relu")
plt.xlabel("x")
plt.ylabel("leaky_relu(x)")
plt.grid(True)
plt.show()
​

4、ELU

在PyTorch中,ELU(Exponential Linear Unit)激活函数是一种常用的非线性激活函数。它通过将输入值指数化,然后对负输入进行缩放,以实现更好的性能。

在PyTorch中,可以使用torch.nn.ELU模块来实现ELU激活函数。

import torch as t
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-100,100,1000)
elu=t.nn.ELU()
y=elu(t.tensor(x,dtype=t.float32)).data.numpy()
plt.plot(x,y)
plt.title("ELU")
plt.xlabel("x")
plt.ylabel("ELU(x)")
plt.grid(True)
plt.show()

5、SELU

SELU(Scaled Exponential Linear Units)是一种激活函数,常用于神经网络中。

在PyTorch中,可以使用torch.nn.functional.selu()函数来实现SELU函数的运算。SELU函数的定义为:

SELU(x) = scale * (max(0, x) + min(0, alpha * (exp(x) - 1)))

其中,scale和alpha是两个可调的参数。通常情况下,scale的值取1.0507,alpha的值取1.6733。

import torch as t
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-100,100,1000)
selu=t.nn.SELU()
y=selu(t.tensor(x,dtype=t.float32)).data.numpy()
plt.plot(x,y)
plt.title("SELU")
plt.xlabel("x")
plt.ylabel("SELU(x)")
plt.grid(True)
plt.show()

6、PReLU

PReLU(Parametric Rectified Linear Unit)是一种用于人工神经网络中的激活函数,可用于解决梯度消失和神经元死亡等问题。PReLU与ReLU(Rectified Linear Unit)类似,但具有可调参数。

PReLU的数学表达式如下:

f(x) = max(0, x) + a * min(0, x)

其中,x为输入,a为可调参数。当a=0时,PReLU即为传统的ReLU函数。

PReLU的优势在于它可以允许负值通过,使得神经元可以接收更丰富的信息。同时,通过调整参数a,可以控制负值部分的斜率,从而提供更大的模型灵活性。

在PyTorch中,可以使用torch.nn.PReLU()来创建一个PReLU的实例。

import torch as t
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-100,100,1000)
prelu=t.nn.PReLU()
y=prelu(t.tensor(x,dtype=t.float32)).data.numpy()
plt.plot(x,y)
plt.title("PReLU")
plt.xlabel("x")
plt.ylabel("PReLU(x)")
plt.grid(True)
plt.show()

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

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

相关文章

(后续补充)vue+express、gitee pm2部署轻量服务器

首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 首先 防火墙全部关闭算了 关闭防火墙 systemctl stop firewalld 重新载入防火墙使设置生效 firewall-cmd --reload 后端的 pm2.config.cjs …

IDEA重新choose source

大概现状是这样:之前有个工程,依赖了别的模块基础包,但当时并没有依赖包的源码工程,因此,通过鼠标左键点进去,看到的是jar包里的class文件,注释什么的都去掉了的,不好看。后面有这个…

『亚马逊云科技产品测评』活动征文|如何搭建低成本亚马逊aws云服务器

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 0. 环境 win10 火狐浏览器 1. 登录 https://aws.amazon.com/cn/ ->…

leetcode:141. 环形链表

一、题目 函数原型: bool hasCycle(struct ListNode *head) 二、算法 判断不是环形链表,只需遍历链表找到空结点即可。 判断是环形链表,由于链表是环形的,遍历不会永远不会结束。所以要设置快慢指针,慢指针一次走一步&…

第十八章:Swing自述

18.1 Swing概述 18.2:Swing常用窗体 18.2.1:JFrame窗体 package eightth; import java.awt.*; //导入AWT包 import javax.swing.*; //导入Swing包 public class JFreamTest { public static void main(String args[]) { // 主方法 JFr…

建链时,please install openssl! use “openssl version“ command to check.

please install openssl! use “openssl version” command to check. 但是我已经安装了 编辑build_chain.sh文件 也可以用vi或者gedit命令 将 [ ! -z “ ( o p e n s s l v e r s i o n ∣ g r e p 1.0.2 ) " ] ∣ ∣ [ ! − z " (openssl version | grep 1.0.2)…

NowCoder | 环形链表的约瑟夫问题

NowCoder | 环形链表的约瑟夫问题 OJ链接 思路&#xff1a; 创建带环链表带环链表的删除节点 代码如下&#xff1a; #include<stdlib.h>typedef struct ListNode ListNode; ListNode* ListBuyNode(int x) {ListNode* node (ListNode*)malloc(sizeof(ListNode));node…

Qt 二维码生成与识别

1.简介 QZXing是一个基于Qt框架的二维码解码库&#xff0c;它是对ZXing&#xff08;Zebra Crossing&#xff09;开源项目的一个Qt封装。ZXing是一个功能强大的开源二维码解码库&#xff0c;支持多种类型的码&#xff0c;包括QR码、DataMatrix码、Aztec码等。 QZXing提供了一个…

java项目之电影网站(ssm框架)

项目简介 电影网站实现了以下功能&#xff1a; 登录模块用例中用户包括用户和管理员和二种角色&#xff0c;分别可以进行其对应的身份登录或取消登录&#xff0c;关闭系统。用户模块主要包括首页&#xff0c;电影信息&#xff0c;电影商城&#xff0c;社区交流&#xff0c;电…

小程序day04

目标 自定义组件 创建组件 引用组件 局部引用 全局引用 组件的函数定义到metods节点中&#xff0c;梦回vue2. 样式 数据&#xff0c;方法&#xff0c;属性 下划线开头的称为自定义方法&#xff0c;非下划线开头的都是事件处理函数。 神特么&#xff0c;this.datathis.pro…

【C#学习笔记】事件

前言 在之前我学习委托的时候&#xff0c;写到了 学习了委托&#xff0c;事件其实也就学习了&#xff0c;事件和委托基本上一模一样&#xff1a; 然而在实际工作中通过对事件的深入学习后发现&#xff0c;实际上事件的使用比委托要严格一些&#xff0c;本节将详细讲解事件的使…

深入理解Python迭代器与生成器

文章目录 1. 迭代器协议代码示例:2. 生成器基础代码示例:3. 使用yield的高级技巧代码示例:4. 生成器表达式代码示例:迭代器和生成器是Python中实现迭代的两种主要方式,它们都允许用户创建可以遍历数据集的对象。在Python中,迭代器协议是指对象需要遵守__iter__()和__next…

YOLOv5论文作图教程(2)— 软件界面布局和基础功能介绍

前言:Hello大家好,我是小哥谈。通过上一节课的学习,相信大家都已成功安装好软件了,本节课就给大家详细介绍一下Axure RP9软件的界面布局及相关基础功能,希望大家学习之后能够有所收获!🌈 前期回顾: YOLOv5论文作图教程(1)— 软件介绍及下载安装(包括软件包+下载安…

数据仓库工具箱-零售业务

文章目录 一、维度模型设计的4步过程1.1 第一步&#xff1a;选择业务过程1.2 第二步&#xff1a;声明粒度1.3 第三步&#xff1a;确定维度1.4 第四步&#xff1a;确定事实 二、零售业务案例研究2.1 第一步&#xff1a;选择业务过程2.2 第二步&#xff1a;声明粒度2.3 第三步&am…

2022最新版-李宏毅机器学习深度学习课程-P34 自注意力机制类别总结

在课程的transformer视频中&#xff0c;李老师详细介绍了部分self-attention内容&#xff0c;但是self-attention其实还有各种各样的变化形式&#xff1a; 一、Self-attention运算存在的问题 在self-attention中&#xff0c;假设输入序列&#xff08;query&#xff09;长度是N…

Unity Input System最简单使用

开始学的是 Input Manager 比较好理解&#xff0c;Input System却不好理解&#xff0c;教程也找了很多&#xff0c;感觉都讲的不清楚&#xff0c;我这里做一个最简单的用 Input System 添加鼠标左键和右键的效果。 1. 安装 Input System 包 首先这个功能不是内置的&#xff0…

MATLAB画图由于线段太多导致导出图片模糊的解决办法

Matlab画图如果figure内的线条过多&#xff0c;或者散点过多&#xff0c;导出的图片会模糊&#xff0c;解决方案 解决方法就在于figure的导出设置中。 在设置的渲染选项中&#xff0c;渲染器有两个&#xff0c;分别为painters和OpenGL&#xff0c;分别为矢量格式输出和位图输出…

【mongoose】mongoose 基本使用

1. 连接数据库 // 1. 安装 mongoose // 2. 导入 mongoose const mongoose require(mongoose) // 3. 连接 mongodb 服务 mongoose.connect(mongodb://127.0.0.1:27017/xx_project) // 4. 设置回调 .on 一直重复连接 .once 只连接一次 mongoose.connection.on(open, () >…

STA——绪论

一、概述 静态时序分析&#xff08;简称STA&#xff09;是用来验证数字设计时序的技术之一&#xff0c;另外一种验证时序的方法是时序仿真&#xff0c;时序仿真可以同时验证功能和时序。“时序分析”这个术语就是用来指代“静态时序分析“或”时序仿真“这两种方法之一&#xf…

MapReduce性能优化之小文件问题和数据倾斜问题解决方案

文章目录 MapReduce性能优化小文件问题生成SequenceFileMapFile案例 &#xff1a;使用SequenceFile实现小文件的存储和计算 数据倾斜问题实际案例 MapReduce性能优化 针对MapReduce的案例我们并没有讲太多&#xff0c;主要是因为在实际工作中真正需要我们去写MapReduce代码的场…