婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > pytorch LayerNorm參數的用法及計算過程

pytorch LayerNorm參數的用法及計算過程

熱門標簽:天津電話機器人公司 應電話機器人打電話違法嗎 河北防封卡電銷卡 手機網頁嵌入地圖標注位置 電銷機器人的風險 地圖標注線上如何操作 開封語音外呼系統代理商 開封自動外呼系統怎么收費 400電話辦理哪種

說明

LayerNorm中不會像BatchNorm那樣跟蹤統計全局的均值方差,因此train()和eval()對LayerNorm沒有影響。

LayerNorm參數

torch.nn.LayerNorm(
        normalized_shape: Union[int, List[int], torch.Size],
        eps: float = 1e-05,
        elementwise_affine: bool = True)

normalized_shape

如果傳入整數,比如4,則被看做只有一個整數的list,此時LayerNorm會對輸入的最后一維進行歸一化,這個int值需要和輸入的最后一維一樣大。

假設此時輸入的數據維度是[3, 4],則對3個長度為4的向量求均值方差,得到3個均值和3個方差,分別對這3行進行歸一化(每一行的4個數字都是均值為0,方差為1);LayerNorm中的weight和bias也分別包含4個數字,重復使用3次,對每一行進行仿射變換(仿射變換即乘以weight中對應的數字后,然后加bias中對應的數字),并會在反向傳播時得到學習。

如果輸入的是個list或者torch.Size,比如[3, 4]或torch.Size([3, 4]),則會對網絡最后的兩維進行歸一化,且要求輸入數據的最后兩維尺寸也是[3, 4]。

假設此時輸入的數據維度也是[3, 4],首先對這12個數字求均值和方差,然后歸一化這個12個數字;weight和bias也分別包含12個數字,分別對12個歸一化后的數字進行仿射變換(仿射變換即乘以weight中對應的數字后,然后加bias中對應的數字),并會在反向傳播時得到學習。

假設此時輸入的數據維度是[N, 3, 4],則對著N個[3,4]做和上述一樣的操作,只是此時做仿射變換時,weight和bias被重復用了N次。

假設此時輸入的數據維度是[N, T, 3, 4],也是一樣的,維度可以更多。

注意:顯然LayerNorm中weight和bias的shape就是傳入的normalized_shape。

eps

歸一化時加在分母上防止除零。

elementwise_affine

如果設為False,則LayerNorm層不含有任何可學習參數。

如果設為True(默認是True)則會包含可學習參數weight和bias,用于仿射變換,即對輸入數據歸一化到均值0方差1后,乘以weight,即bias。

LayerNorm前向傳播(以normalized_shape為一個int舉例)

1、如下所示輸入數據的shape是(3, 4),此時normalized_shape傳入4(輸入維度最后一維的size),則沿著最后一維(沿著最后一維的意思就是對最后一維的數據進行操作)并用這兩個結果把batch沿著最后一維歸一化,使其均值為0,方差為1。歸一化公式用到了eps(),即

tensor = torch.FloatTensor([[1, 2, 4, 1],
                            [6, 3, 2, 4],
                            [2, 4, 6, 1]])

[[-0.8165,  0.0000,  1.6330, -0.8165],
 [ 1.5213, -0.5071, -1.1832,  0.1690],
 [-0.6509,  0.3906,  1.4321, -1.1717]]

2、如果elementwise_affine==True,則對歸一化后的batch進行仿射變換,即乘以模塊內部的weight(初值是[1., 1., 1., 1.])然后加上模塊內部的bias(初值是[0., 0., 0., 0.]),這兩個變量會在反向傳播時得到更新。

3、如果elementwise_affine==False,則LayerNorm中不含有weight和bias兩個變量,只做歸一化,不會進行仿射變換。

總結

在使用LayerNorm時,通常只需要指定normalized_shape就可以了。

補充:【Pytorch】F.layer_norm和nn.LayerNorm到底有什么區別?

背景

最近在做視頻方向,處理的是時序特征,就想著能不能用Batch Normalization來做視頻特征BN層?在網上查閱資料發現,時序特征并不能用Batch Normalization,因為一個batch中的序列有長有短。

此外,BN 的一個缺點是需要較大的 batchsize 才能合理估訓練數據的均值和方差,這導致內存很可能不夠用,同時它也很難應用在訓練數據長度不同的 RNN 模型上。

Layer Normalization (LN) 的一個優勢是不需要批訓練,在單條數據內部就能歸一化。

對于RNN等時序模型,有時候同一個batch內部的訓練實例長度不一(不同長度的句子),則不同的時態下需要保存不同的統計量,無法正確使用BN層,只能使用Layer Normalization。

查閱Layer Normalization(下述LN)后發現,這東西有兩種用法,一個是F.layer_norm,一個是torch.nn.LayerNorm,本文探究他們的區別。

F.layer_norm

用法

F.layer_norm(x, normalized_shape, self.weight.expand(normalized_shape), self.bias.expand(normalized_shape))

其中:

x是輸入的Tensor

normalized_shape是要歸一化的維度,可以是x的后若干維度

self.weight.expand(normalized_shape),可選參數,自定義的weight

self.bias.expand(normalized_shape),可選參數,自定義的bias

示例

很容易看出來,跟F.normalize基本一樣,沒有可學習的參數,或者自定義參數。具體使用示例如下:

import torch.nn.functional as F
 
input = torch.tensor(a)
y = F.layer_norm(input,(4,))
print(y)
 
#####################輸出################
tensor([[[-0.8095, -1.1224,  1.2966,  0.6354],
         [-1.0215, -0.9661,  0.8387,  1.1488],
         [-0.3047,  1.0412, -1.4978,  0.7613]],
 
        [[ 0.4605,  1.2144, -1.5122, -0.1627],
         [ 1.5676,  0.1340, -1.0471, -0.6545],
         [ 1.5388, -0.3520, -1.2273,  0.0405]]])

添加縮放:

w = torch.tensor([1,1,2,2])
b = torch.tensor([1,1,1,1])
y = F.layer_norm(input,(4,),w,b)
print(y)
 
#########################輸出######################
tensor([[[ 0.1905, -0.1224,  3.5931,  2.2708],
         [-0.0215,  0.0339,  2.6775,  3.2976],
         [ 0.6953,  2.0412, -1.9956,  2.5225]],
 
        [[ 1.4605,  2.2144, -2.0243,  0.6746],
         [ 2.5676,  1.1340, -1.0942, -0.3090],
         [ 2.5388,  0.6480, -1.4546,  1.0810]]])

nn.LayerNorm

用法

torch.nn.LayerNorm(
        normalized_shape: Union[int, List[int], torch.Size],
        eps: float = 1e-05,
        elementwise_affine: bool = True)

normalized_shape: 輸入尺寸, [∗×normalized_shape[0]×normalized_shape[1]×…×normalized_shape[−1]]

eps: 為保證數值穩定性(分母不能趨近或取0),給分母加上的值。默認為1e-5。

elementwise_affine: 布爾值,當設為true,給該層添加可學習的仿射變換參數。

示例

elementwise_affine如果設為False,則LayerNorm層不含有任何可學習參數。

如果設為True(默認是True)則會包含可學習參數weight和bias,用于仿射變換,即對輸入數據歸一化到均值0方差1后,乘以weight,即bias。

import torch
input = torch.randn(2,3,2,2)
import torch.nn as nn
#取消仿射變換要寫成
#m = nn.LayerNorm(input.size()[1:], elementwise_affine=False)
m1 = nn.LayerNorm(input.size()[1:])#input.size()[1:]為torch.Size([3, 2, 2])
output1 = m1(input)
#只normalize后兩個維度
m2 = nn.LayerNorm([2,2])
output2 = m2(input)
#只normalize最后一個維度
m3 = nn.LayerNorm(2)
output3 = m3(input)

總結

F.layer_norm中沒有可學習參數,而nn.LayerNorm有可學習參數。當elementwise_affine設為False時,nn.LayerNorm退化為F.layer_norm。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • pytorch固定BN層參數的操作
  • pytorch 如何自定義卷積核權值參數
  • pytorch交叉熵損失函數的weight參數的使用
  • Pytorch 統計模型參數量的操作 param.numel()
  • pytorch 一行代碼查看網絡參數總量的實現
  • pytorch查看網絡參數顯存占用量等操作
  • pytorch 優化器(optim)不同參數組,不同學習率設置的操作

標簽:成都 山東 江蘇 蘭州 宿遷 駐馬店 常州 六盤水

巨人網絡通訊聲明:本文標題《pytorch LayerNorm參數的用法及計算過程》,本文關鍵詞  pytorch,LayerNorm,參數,的,用法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch LayerNorm參數的用法及計算過程》相關的同類信息!
  • 本頁收集關于pytorch LayerNorm參數的用法及計算過程的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美一级淫片007| 亚洲视频中文字幕| 亚洲精品一区二区三区蜜桃下载| 欧美国产激情二区三区| 蜜臀久久久99精品久久久久久| 94-欧美-setu| 中文字幕亚洲一区二区av在线| 麻豆精品视频在线观看免费| 91福利在线观看| 亚洲影院理伦片| 成人av第一页| 久久精品国产亚洲一区二区三区| 欧美日韩极品在线观看一区| 亚洲男人的天堂av| 欧美亚洲愉拍一区二区| 日韩—二三区免费观看av| 91精品国产欧美一区二区| 日韩成人一区二区| 精品久久久久一区二区国产| 美女精品自拍一二三四| 国产欧美一区二区精品忘忧草| 国产精品影视网| 玉米视频成人免费看| 欧美美女黄视频| jiyouzz国产精品久久| 亚洲成人福利片| 国产女人18毛片水真多成人如厕 | 国产91丝袜在线18| 久久99热这里只有精品| 五月天一区二区| 久久久久国产精品厨房| 久久成人麻豆午夜电影| 成人午夜视频免费看| 欧美一级片在线| 久久亚洲欧美国产精品乐播| 成人免费va视频| 麻豆精品视频在线观看| 国产亚洲精品aa| 欧美亚洲图片小说| www.欧美日韩| 国产福利一区二区三区视频在线| 视频在线观看国产精品| 久久久久久99久久久精品网站| 欧美日韩情趣电影| 国产中文字幕一区| 久久综合一区二区| 日韩中文欧美在线| 亚洲综合色网站| 国产精品国产三级国产| 久久免费美女视频| 欧美一级电影网站| 久久精品999| 亚洲无线码一区二区三区| 一区二区三区精品久久久| 亚洲一区自拍偷拍| 午夜精品久久久久久久蜜桃app| 中文字幕在线不卡国产视频| 国产精品色在线观看| 国产精品久久久久久久岛一牛影视 | 在线观看日韩电影| 欧美综合一区二区| 制服丝袜国产精品| 久久久久久免费网| 国产精品日产欧美久久久久| ...av二区三区久久精品| 亚洲欧美日韩国产综合在线| 亚洲人成精品久久久久| 亚洲成人资源在线| 国产精品亚洲第一| 色噜噜狠狠色综合欧洲selulu| 精品视频色一区| 国产亚洲一区二区三区四区| 国产精品美日韩| 久久爱另类一区二区小说| 91免费版在线看| 久久这里只有精品6| 综合中文字幕亚洲| 国产精品自拍三区| 欧美日韩成人一区| 亚洲毛片av在线| 国产精品一区二区果冻传媒| 色吧成人激情小说| 国产精品久久久久久久久动漫 | 日韩精品在线网站| 亚洲欧洲色图综合| 中文一区二区在线观看| 日本女优在线视频一区二区 | 欧美日韩三级在线| 91黄视频在线观看| 国产精品免费网站在线观看| 韩国中文字幕2020精品| 精品伦理精品一区| 麻豆精品视频在线| 日韩一级成人av| 日本中文字幕一区二区视频 | 国产在线视频不卡二| 欧美一区二区三区系列电影| 亚洲综合小说图片| 欧美女孩性生活视频| 一区二区视频在线看| 欧美日韩精品一区二区三区蜜桃| 亚洲图片一区二区| 91麻豆精品国产91久久久久久久久 | 欧美在线免费观看亚洲| 亚洲乱码一区二区三区在线观看| 色综合天天综合网国产成人综合天| 中日韩av电影| 欧美激情在线观看视频免费| 国产精品影视网| 亚洲综合久久久久| 日韩欧美国产综合在线一区二区三区| 日韩精品色哟哟| 91精品国产欧美一区二区成人| 久久影院电视剧免费观看| www.日韩大片| 日韩国产欧美在线播放| 欧美经典一区二区三区| 欧美丝袜丝nylons| 久久精品国产久精国产爱| 亚洲免费av网站| 国产在线不卡一区| 中文字幕中文字幕在线一区| 欧美成人a视频| 欧美亚洲国产怡红院影院| 久久精品国产成人一区二区三区| 亚洲男人的天堂一区二区| 久久精品视频在线看| 欧美日韩国产精选| 99久久婷婷国产综合精品| 久久不见久久见免费视频1| 日韩在线播放一区二区| 亚洲制服丝袜av| 亚洲美女视频一区| 亚洲欧美日韩国产成人精品影院| 91精品视频网| 欧美日韩一区三区| 在线观看免费亚洲| 色诱亚洲精品久久久久久| 色久综合一二码| 国产精品视频看| 欧美一区二区大片| 美国欧美日韩国产在线播放| 欧美成人乱码一区二区三区| 日韩av中文字幕一区二区三区| 国产一区久久久| 在线看国产一区二区| 日本欧美韩国一区三区| 亚洲精品网站在线观看| 欧美一区二区三区免费视频| www.av精品| 欧美va亚洲va在线观看蝴蝶网| 午夜精品福利一区二区三区av| 欧美sm美女调教| 亚洲精品国产a| 欧美午夜精品免费| 成人亚洲精品久久久久软件| 亚洲精品成a人| 国产偷国产偷亚洲高清人白洁| 欧美色手机在线观看| 国产aⅴ综合色| 色综合天天综合网天天狠天天| 91美女福利视频| 精品99999| 欧美国产一区二区| 综合久久久久久| 亚洲已满18点击进入久久| 成人在线综合网| 99热这里都是精品| 亚洲国产精品一区二区尤物区| 亚洲视频一二区| 免费在线观看日韩欧美| 国产高清亚洲一区| 91精品国产91综合久久蜜臀| 欧美一区二区在线观看| 日韩视频国产视频| 国产日韩视频一区二区三区| 亚洲国产日韩a在线播放| av电影一区二区| 久久久亚洲欧洲日产国码αv| 一区二区三区四区中文字幕| 国产一区二区三区免费在线观看| 精品国产精品网麻豆系列| 一区二区三区高清在线| 成人免费的视频| 国产精品毛片久久久久久| 精品午夜久久福利影院| 精品国产乱码久久久久久夜甘婷婷| 最近中文字幕一区二区三区| 国产精品亚洲第一区在线暖暖韩国 | 一片黄亚洲嫩模| 99久久综合精品| 国产无遮挡一区二区三区毛片日本| 另类专区欧美蜜桃臀第一页| 99热在这里有精品免费| 中文字幕一区二区在线播放 | 国产无一区二区| 91丨九色丨国产丨porny| 国产不卡高清在线观看视频| 国产一区日韩二区欧美三区| 欧美大片在线观看一区|