返回顶部
首页 > 资讯 > 精选 >pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析
  • 703
分享到

pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析

2023-06-15 06:06:45 703人浏览 薄情痞子
摘要

这篇文章主要介绍PyTorch中LN(LayerNORM)及Relu和其变相输出操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!主要就是了解一下pytorch中的使用layernorm这种归一化之后的数据

这篇文章主要介绍PyTorch中LN(LayerNORM)及Relu和其变相输出操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

主要就是了解一下pytorch中的使用layernorm这种归一化之后的数据变化,以及数据使用relu,prelu,leakyrelu之后的变化。

import torchimport torch.nn as nnimport torch.nn.functional as Fclass model(nn.Module):    def __init__(self):        super(model, self).__init__()        self.LN=nn.LayerNorm(10,eps=0,elementwise_affine=True)        self.PRelu=nn.PReLU(init=0.25)        self.Relu=nn.ReLU()        self.LeakyReLU=nn.LeakyReLU(negative_slope=0.01,inplace=False)    def forward(self,input ):        out=self.LN(input)        print("LN:",out)        out1=self.PRelu(out)        print("PRelu:",out1)        out2=self.Relu(out)        print("Relu:",out2)        out3=self.LeakyReLU(out)        print("LeakyRelu:",out3)        return outtensor=torch.tensor([-0.9,0.1,0,-0.1,0.9,-0.4,0.9,-0.5,0.8,0.1])net=model()print(tensor)net(tensor)

输出:

tensor([-0.9000,  0.1000,  0.0000, -0.1000,  0.9000, -0.4000,  0.9000, -0.5000,
         0.8000,  0.1000])
LN: tensor([-1.6906,  0.0171, -0.1537, -0.3245,  1.3833, -0.8368,  1.3833, -1.0076,
         1.2125,  0.0171], grad_fn=<NativeLayerNormBackward>)
Relu: tensor([0.0000, 0.0171, 0.0000, 0.0000, 1.3833, 0.0000, 1.3833, 0.0000, 1.2125,
        0.0171], grad_fn=<ReluBackward0>)
PRelu: tensor([-0.4227,  0.0171, -0.0384, -0.0811,  1.3833, -0.2092,  1.3833, -0.2519,
         1.2125,  0.0171], grad_fn=<PreluBackward>)
LeakyRelu: tensor([-0.0169,  0.0171, -0.0015, -0.0032,  1.3833, -0.0084,  1.3833, -0.0101,
         1.2125,  0.0171], grad_fn=<LeakyReluBackward0>)

从上面可以看出,这个LayerNorm的归一化,并不是将数据限定在0-1之间,也没有进行一个类似于高斯分布一样的分数,只是将其进行了一个处理,对应的数值得到了一些变化,相同数值的变化也是相同的。

Relu的则是单纯将小于0的数变成了0,减少了梯度消失的可能性

PRelu是一定程度上的保留了负值,根据init给的值。

LeakyRelu也是一定程度上保留负值,不过比较小,应该是根据negative_slope给的值。

补充:PyTorch学习之归一化层(BatchNorm、LayerNorm、InstanceNorm、GroupNorm)

BN,LN,IN,GN从学术化上解释差异:

BatchNorm:batch方向做归一化,算NHW的均值,对小batchsize效果不好;BN主要缺点是对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布

LayerNorm:channel方向做归一化,算CHW的均值,主要对RNN作用明显;

InstanceNorm:一个channel内做归一化,算H*W的均值,用在风格化迁移;因为在图像风格化中,生成结果主要依赖于某个图像实例,所以对整个batch归一化不适合图像风格化中,因而对HW做归一化。可以加速模型收敛,并且保持每个图像实例之间的独立。

GroupNorm:将channel方向分group,然后每个group内做归一化,算(C//G)HW的均值;这样与batchsize无关,不受其约束。

SwitchableNorm是将BN、LN、IN结合,赋予权重,让网络自己去学习归一化层应该使用什么方法。

pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析

1 BatchNorm

torch.nn.BatchNorm1d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)torch.nn.BatchNorm3D(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)

参数:

num_features: 来自期望输入的特征数,该期望输入的大小为'batch_size x num_features [x width]'

eps: 为保证数值稳定性(分母不能趋近或取0),给分母加上的值。默认为1e-5。

momentum: 动态均值和动态方差所使用的动量。默认为0.1。

affine: 布尔值,当设为true,给该层添加可学习的仿射变换参数。

track_running_stats:布尔值,当设为true,记录训练过程中的均值和方差;

实现公式:

track_running_stats:布尔值,当设为true,记录训练过程中的均值和方差;

实现公式:

pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析

2 GroupNorm

torch.nn.GroupNorm(num_groups, num_channels, eps=1e-05, affine=True)

参数:

num_groups:需要划分为的groups

num_features:来自期望输入的特征数,该期望输入的大小为'batch_size x num_features [x width]'

eps:为保证数值稳定性(分母不能趋近或取0),给分母加上的值。默认为1e-5。

momentum:动态均值和动态方差所使用的动量。默认为0.1。

affine:布尔值,当设为true,给该层添加可学习的仿射变换参数。

实现公式:

pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析

3 InstanceNorm

torch.nn.InstanceNorm1d(num_features, eps=1e-05, momentum=0.1, affine=False, track_running_stats=False)torch.nn.InstanceNorm2d(num_features, eps=1e-05, momentum=0.1, affine=False, track_running_stats=False)torch.nn.InstanceNorm3d(num_features, eps=1e-05, momentum=0.1, affine=False, track_running_stats=False)

参数:

num_features:来自期望输入的特征数,该期望输入的大小为'batch_size x num_features [x width]'

eps:为保证数值稳定性(分母不能趋近或取0),给分母加上的值。默认为1e-5。

momentum:动态均值和动态方差所使用的动量。默认为0.1。

affine:布尔值,当设为true,给该层添加可学习的仿射变换参数。

track_running_stats:布尔值,当设为true,记录训练过程中的均值和方差;

实现公式:

pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析

4 LayerNorm

torch.nn.LayerNorm(normalized_shape, eps=1e-05, elementwise_affine=True)

参数:

normalized_shape: 输入尺寸

[∗×normalized_shape[0]×normalized_shape[1]×…×normalized_shape[−1]]

eps: 为保证数值稳定性(分母不能趋近或取0),给分母加上的值。默认为1e-5。

elementwise_affine: 布尔值,当设为true,给该层添加可学习的仿射变换参数。

实现公式:

pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析

5 LocalResponseNorm

torch.nn.LocalResponseNorm(size, alpha=0.0001, beta=0.75, k=1.0)

参数:

size:用于归一化的邻居通道数

alpha:乘积因子,Default: 0.0001

beta :指数,Default: 0.75

k:附加因子,Default: 1

实现公式:

pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析

以上是“pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析

本文链接: https://lsjlt.com/news/278237.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析
    这篇文章主要介绍pytorch中LN(LayerNorm)及Relu和其变相输出操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!主要就是了解一下pytorch中的使用layernorm这种归一化之后的数据...
    99+
    2023-06-15
  • pytorch中LN(LayerNorm)及Relu和其变相的输出操作
    主要就是了解一下pytorch中的使用layernorm这种归一化之后的数据变化,以及数据使用relu,prelu,leakyrelu之后的变化。 import torch im...
    99+
    2024-04-02
  • ESlint和其相关操作的示例分析
    这篇文章将为大家详细讲解有关ESlint和其相关操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue-cli脚手架创建的项目默认使用ESlint规则,启动项...
    99+
    2024-04-02
  • JS变量及其作用域的示例分析
    小编给大家分享一下JS变量及其作用域的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、 变量及其作用域:变量分为“全局...
    99+
    2024-04-02
  • Pytorch中Tensor基本操作的示例分析
    这篇文章将为大家详细讲解有关Pytorch中Tensor基本操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、tensor的创建1.使用tensor小写字母的tensor接收具体的数据,可以...
    99+
    2023-06-25
  • pytorch中stack和cat的及to_tensor的示例分析
    这篇文章给大家分享的是有关pytorch中stack和cat的及to_tensor的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。初入计算机视觉遇到的一些坑1.pytorch中转tensorx=np.ra...
    99+
    2023-06-15
  • pytorch 6中batch_train批训练操作的示例分析
    这篇文章主要介绍pytorch 6中batch_train批训练操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!看代码吧~import torchimport torch.utils....
    99+
    2023-06-15
  • Angular模板引用变量及其作用域的示例分析
    小编给大家分享一下Angular模板引用变量及其作用域的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Angular模板引用变量如果你曾经参与过Angular项目的开发,那么你可能...
    99+
    2024-04-02
  • java中volatile变量并发操作的示例分析
    小编给大家分享一下java中volatile变量并发操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java的特点有哪些Java的特点有哪些1.Jav...
    99+
    2023-06-14
  • golang中gorm操作mysql及gorm的示例分析
    这篇文章给大家分享的是有关golang中gorm操作mysql及gorm的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。golang 官方的那个操作mysql的有点麻烦所以就使用了gorm,下面就gorm...
    99+
    2023-06-15
  • CentOS7中Xfs文件系统相关操作的示例分析
    小编给大家分享一下CentOS7中Xfs文件系统相关操作的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Xfs是CentOS7.0的默认文件系统类型,而不同文件系统类型对应的创建、检查、调整命令不同,要注意区分。调...
    99+
    2023-06-10
  • Pytorch训练模型得到输出后计算F1-Score 和AUC的示例分析
    小编给大家分享一下Pytorch训练模型得到输出后计算F1-Score 和AUC的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、计算F1-Score对...
    99+
    2023-06-15
  • javascript中变量、作用域和内存的示例分析
    这篇文章主要介绍javascript中变量、作用域和内存的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!javascript 的变量、作用域和内存问题(一)JavaScrip...
    99+
    2024-04-02
  • JavaScript中变量作用域及内存问题的示例分析
    这篇文章给大家分享的是有关JavaScript中变量作用域及内存问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。学习要点:1.变量及作用域2.内存问题JavaScri...
    99+
    2024-04-02
  • R语言中corrplot标题居中及eps格式输出的示例分析
    小编给大家分享一下R语言中corrplot标题居中及eps格式输出的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!相关性图R中相关性图有两种比较简单的画法...
    99+
    2023-06-25
  • js中作用域和作用域链及预解析的示例分析
    小编给大家分享一下js中作用域和作用域链及预解析的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!变量---->局部...
    99+
    2024-04-02
  • Redis中配置、启动、操作和关闭的示例分析
    这篇文章主要为大家展示了“Redis中配置、启动、操作和关闭的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Redis中配置、启动、操作和关闭的示例分析...
    99+
    2024-04-02
  • Redis中过期操作和过期策略的示例分析
    这篇文章主要介绍Redis中过期操作和过期策略的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!过期操作过期设置Redis 中设置过期时间主要通过以下四种方式:expire k...
    99+
    2024-04-02
  • python中文件操作和异常处理的示例分析
    这篇文章主要介绍python中文件操作和异常处理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 文件的操作1.1创建文件格式:f = open(‘文件', ‘w')或者f = open(...
    99+
    2023-06-22
  • HTML5之pushstate、popstate操作history以及无刷新改变当前url的示例分析
    这篇文章主要为大家展示了“HTML5之pushstate、popstate操作history以及无刷新改变当前url的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作