激活函数介绍

news2024/12/24 9:13:12

介绍

神经网络当中的激活函数用来提升网络的非线性,以增强网络的表征能力。它有这样几个特点:有界,必须为非常数,单调递增且连续可求导。我们常用的有sigmoid或者tanh,但我们都知道这两个都存在一定的缺点,有的甚至是无脑用Relu。所以今天就来学习并实现一些其他的激活函数。

下面激活函数使用的图像都是可以通过这个脚本就行修改:

import torch
import matplotlib.pyplot as plt
import torch.nn.functional as F
x = torch.linspace(-10, 10, 60)
y = F.silu(x)

plt.plot(x.numpy(), y.numpy())
plt.title('Silu Activation Function')
plt.xlabel('x')
plt.ylabel('silu(x)')
plt.grid()
plt.tight_layout()
plt.show()

SiLU

import torch
import torch.nn as nn
import torch.nn.functional as F

class SiLU(nn.Module):
    @staticmethod
    def forward(x):
        return x * torch.sigmoid(x)

if __name__=="__main__":
    m = nn.SiLU()
    input = torch.randn(2)
    output = m(input)
    print("官方实现:",output)
    n = SiLU()
    output = n(input)
    print("自定义:",output)

官方实现: tensor([ 0.2838, -0.2578])
自定义: tensor([ 0.2838, -0.2578])

Mish

import torch
import torch.nn as nn
import torch.nn.functional as F

class Mish(nn.Module):
    @staticmethod
    def forward(x):
        return x * F.softplus(x).tanh()

if __name__=="__main__":
    m = nn.Mish()
    input = torch.randn(2)
    output = m(input)
    print("官方实现:",output)
    n = Mish()
    output = n(input)
    print("自定义:",output)

官方实现: tensor([2.8559, 0.2204])
自定义: tensor([2.8559, 0.2204])

Hard-SiLU

import torch
import torch.nn as nn
import torch.nn.functional as F

class Hardswish(nn.Module):
    # Hard-SiLU activation https://arxiv.org/abs/1905.02244
    @staticmethod
    def forward(x):
        return x * F.hardtanh(x + 3, 0.0, 6.0) / 6.0

if __name__=="__main__":
    m = nn.Hardswish()
    input = torch.randn(2)
    output = m(input)
    print("官方实现:",output)
    n = Hardswish()
    output = n(input)
    print("自定义:",output)

官方实现: tensor([-0.1857, -0.0061])
自定义: tensor([-0.1857, -0.0061])

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

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

相关文章

第十五章 类和对象——友元

生活中你的家有客厅(Public),有你的卧室(Private) 客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去 但是呢,你也可以允许你的好闺蜜好基友进去。 在程序里,有些私有属性 也想让类外特殊的一些…

springboot配置静态资源访问

使用springboot搭建web项目的时候,springboot默认从static目录访问静态资源 例如我们写一个html,然后去访问这个html 内容《你好!》 然后运行项目 运行成功,此时我用的端口号是8089 然后去浏览器里访问hello.html http://localhost:8089/…

力扣 -- 879. 盈利计划(二维费用的背包问题)

解题步骤&#xff1a; 参考代码&#xff1a; 未优化的代码&#xff1a; class Solution { public:int profitableSchemes(int n, int minProfit, vector<int>& group, vector<int>& profit) {//计划数int lengroup.size();//每一维都多开一行空间vector&…

查询表中指定列数据

MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 语法格式: select 列名1, 列名2, ..., 列名n from 表名; 想要查多少列就写多少个列名,不需要看的不要写就行了 案例&#xff1a;查询emp表中&…

Spring面试题学习: 单例Bean是单例模式吗?

单例Bean是单例模式吗 学习背景答案扩展知识单例模式Spring BeanJava Bean单例Bean 个人评价我的回答 学习背景 想换工作. 学习记录, 算是一个输出. 答案 通常来说, 单例模式是指在一个JVM中, 一个类只能构造出一个对象. 有很多方法来实现单例模式, 比如饿汉模式. 但是我们通…

使用Pytorch构建神经网络

构建神经网络的典型流程 定义一个拥有可学习参数的神经网络遍历训练数据集处理输入数据使其流经神经网络计算损失值将网络参数的梯度进行反向传播以一定的规则更新网络的权重 我们首先定义一个Pytorch实现的神经网络: # 导入若干工具包 import torch import torch.nn as nn …

【vue】element强制刷新el-carousel的dom:

文章目录 一、问题:二、分析:三、解决: 一、问题: 二、分析: el-carouse里面的数据是最新的&#xff0c;但dom却是前一个的数据 注意&#xff1a;使用了this.$forceUpdate();或this.$set(xx,xx);&#xff0c;没有效果 三、解决: :key"new Date().getTime()"

透明度和透明贴图制作玻璃水杯

1、什么是透明度 模型透明度是指一个物体或模型在呈现时的透明程度。它决定了物体在渲染时&#xff0c;是否显示其后面的物体或背景。 在图形渲染中&#xff0c;透明度通常以0到1之间的值表示。值为0表示完全透明&#xff0c;即物体不可见&#xff0c;背景或其他物体完全穿透…

机器学习笔记(一)

1.线性回归模型 2. 损失函数 3.梯度下降算法 多元特征的线性回归 当有多个影响因素的时候,公式可以改写为: 当有多个影响因素的时候为了方便计算,可以使用 Numpy下面的点积方法, np.dot(w,x) 最后再加个b 就省略了很多书写步骤,这叫做矢量化 多元回归的梯度下降 左边是一…

Nginx实现动静分离

一、概述 1、什么是动静分离 动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来&#xff0c;动静资源做好了拆分以后&#xff0c;我们就可以根据静态资源的特点将其做缓存操作&#xff0c;这就是网站静态化处理的核心思路。 动静分离简单的概…

【ldt_struct结构体的利用】RWCTF2023-Digging-into-kernel-3

ldt_struct 结构体 对于该结构体知识请自行谷歌学习&#xff0c;这里仅仅讲利用 ldt 即局部段描述符表&#xff08;Local Descriptor Table&#xff09;该结构体如下&#xff0c;结构体的大小为 0x10&#xff1a; /** ldt_structs can be allocated, used, and freed, but t…

【算法导论】中位数和顺序统计量

目录 1. 最小值和最大值1.1 寻找最大值或最小值1.2 同时寻找最大值与最小值 2. 期望为线性时间的选择算法2.1 解决的问题2.2 解决的办法2.3 伪代码2.4 RANDOMIZED-SELECT函数运行过程2.5 算法时间复杂度的分析2.5.1 最坏运行时间2.5.2 期望运行时间 3. 最坏为线性时间的选择算法…

斐波那契模型系列【动态规划】

动态规划步骤 1、状态表示 是什么&#xff1a;dp表&#xff08;可能是一维或二维数组&#xff09;里的值所表示的含义。 怎么来&#xff1a; 1、题目要求 2、经验题目要求 3、发现重复子问题 2、状态转移方程 dp[i]... 3、初始化 保证填表不越界 4、填表顺序 5、返回值 写代码时…

基于j2ee的交通管理信息系统/交通管理系统

摘 要 随着当今社会的发展&#xff0c;时代的进步&#xff0c;各行各业也在发生着变化&#xff0c;比如交通管理这一方面&#xff0c;利用网络已经逐步进入人们的生活。传统的交通管理&#xff0c;都是工作人员线下手工统计&#xff0c;这种传统方式局限性比较大且花费较多。计…

IDEA踩坑记录:查找用法 找到的不全怎么办

在我跟CC1链的时候&#xff0c;对InvokerTransformer类的transform()方法进行右键查找用法时&#xff0c;本来应该找到org.apache.commons.collections.map包中的TransformedMap类调用了此方法&#xff0c;但是结果确是没找到。 解决办法&#xff1a; 点击右上方的Maven选项&a…

数据结构 2.1 线性表的定义和基本操作

数据结构三要素——逻辑结构、数据的运算、存储结构&#xff08;物理结构&#xff09; 线性表的逻辑结构 线性表是具有相同数据类型的n&#xff08;n>0&#xff09;个数据元素的有限序列&#xff0c;其中n为表长&#xff0c;当n0时&#xff0c;线性表是一个空表。 每个数…

【Vue】Vue快速入门、Vue常用指令、Vue的生命周期

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaEE 操作系统 Redis 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Vue 一、 Vue快速入门二、Vue常用指令2.1 v…

python机器学习基础教程02-鸢尾花分类

初识数据 from sklearn.datasets import load_irisif __name__ __main__:iris_dataset load_iris()print("数据集的键为:\n{}".format(iris_dataset.keys()))# DESCR 数据集的简要说明print(iris_dataset[DESCR][:193])# target_names 数组对应的是我们要预测的花…

导出视频里的字幕

导出视频里的字幕 如何利用剪映快速提取并导出视频里的字幕 https://jingyan.baidu.com/article/c35dbcb0881b6fc817fcbcd2.html 如何快速提取视频中的字幕&#xff1f;给大家介绍一种简单高效又免费的提取方法。需要利用到“剪映”&#xff0c;以下是具体的操作步骤和指引&a…

小团队内部资料共享协作:有效实施策略与方法

在高效率的办公节奏下&#xff0c;传统的文件共享方式无法匹配许多团队的需求&#xff0c;并且在现实使用过程中往往存在许多问题&#xff0c;如版本混乱、权限管理困难等。那么小团队的内部资料共享协作应该怎么做呢&#xff1f; 小型团队可以借助专业的协作工具实现高效内部…