首页 > 编程知识 正文

normface,pytorch batchsize

时间:2023-05-05 06:05:22 阅读:107487 作者:3458

LayerNorm与BatchNorm相比有以下两个优点。

由于LN是针对单个训练样本进行的,且不依赖于其他数据,因此可以避免受BN中的mini-batch数据分布的影响的问题,并且可以用于小型mini-batch场景、动态网络场景、RNN,特别是自然语言处理领域。 LN不需要存储最小备用平均值和方差,从而节省额外的存储空间。 更具体地介绍参考模型优化的层归一化

y=xe [ x ] var [ x ]y=frac { x- math RM { e } [ x ] } {operator name { var } [ x ]epsilon } * *

表达式看起来与BN一致,但这里统计的样本和方差属于同一样本的不同属性

torch.nn.layernormnormalized _ shape指定必须运行layer norm的维。 可以是int,list,torch.Sizeeps -之一。 在上述公式中,分母是0, 缺省值为1 e-5元素wise缺省值为trueimporttorchimporttorch.nnasnnimportnumpyasnpimportmathdefvalidation (x ) : " "验证“' ' x=NP.array(x ) avg=NP.mean(x,axis=1) #维度3*1STD2=NP.NP .的axis=1) #维度3 * 1x _ avg=[ itemfon ] 1/2 ) foriteminSTD2) for_inrange(x.shape[1] ) x_=(x-NP.array(x_avg ).t )/NP.array ) x_STT

tensor([-1.3416,- 0.4472,0.4472,1.3416 ],[-1.3472,- 0.4472,0.3416 ],[-1.3416,- 0.4472,0. [-1.34164079-0.4472136.44721361.34164079 ] [-1.34164079-0.4472136.4472136 ]。 [-1.34164079-0.44721360.44721361.34164079 ] normalized _ shape输入通过torch.size处理高维度

x=[ 1,1 ]、[ 2,2 ]、[ 3,3 ]、[ 4,4 ]、[ 2,2 ]、[ 3,3 ]、[ 4,4 ]、[ 5,5 ]、[ 3,3 ]、[ 3,3 ] dype=torch.float (normalized_shape=input.size ([ 1: ] print ) normalized _ shape ) m=nn.layernorm ) norm

torch.size ([ 4,2 ] ) tensor ) [[-1.3416,-1.3416]、[-0.4472,-0.4472]、[ 0.4472,0.4472 ]、[ 1.3416 ]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。