日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[Pytorch系列-28]:神经网络基础 - torch.nn模块功能列表

發(fā)布時間:2024/3/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Pytorch系列-28]:神经网络基础 - torch.nn模块功能列表 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文網(wǎng)址:https://blog.csdn.net/HiWangWenBing/article/details/120606523


目錄

第1章?torch.nn概述

1.1 torch.nn簡介與功能

第2章?torch.nn的組成與子模塊

2.1 獲取神經(jīng)網(wǎng)絡(luò)的模型參數(shù)

2.2 主要的容器

2.3?線性層

2.4?非線性激活函數(shù)-1

2.5?非線性激活函數(shù) -2?

2.6?歸一化處理

2.7?各種損失函數(shù)

2.8?CNN卷積層

2.9?pooling層

2.10?填充層

2.11?RNN網(wǎng)絡(luò)層

2.12?Dropout層定義

2.13?Sparse layers

2.14?距離功能

2.15 可視化層

2.16 并行數(shù)據(jù)層

2.17?各種工具



第1章?torch.nn概述

1.1 torch.nn簡介與功能

nn是Neural Network的簡稱。

torch.nn模塊是PyTorch提供的,幫助程序員方便(1)創(chuàng)建神經(jīng)網(wǎng)絡(luò)和(2)訓(xùn)練神經(jīng)網(wǎng)絡(luò)而提供的模塊。主要功能包括:

  • 創(chuàng)建神經(jīng)網(wǎng)絡(luò)
  • 訓(xùn)練神經(jīng)網(wǎng)絡(luò)

第2章?torch.nn的組成與子模塊

2.1 獲取神經(jīng)網(wǎng)絡(luò)的模型參數(shù)

1) torch.nn.Parameter獲取模型參數(shù)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

2.2 主要的容器

Containers
1)torch.nn.Module它是所有神經(jīng)網(wǎng)絡(luò)模塊的基類。
2)torch.nn.Sequential

它是一個順序容器,

其中模塊的添加順序與在構(gòu)造函數(shù)中傳遞模塊時的順序相同。

3)torch.nn.ModuleList這會將子模塊保存在列表中。
4)torch.nn.ModuleDict這會將子模塊保存在目錄中。
5)torch.nn.ParameterList這會將參數(shù)保存在列表中。
6)torch.nn.parameterDict這會將參數(shù)保存在目錄中。

2.3?線性層

線性層
1)PyTorch PlaceHolder它是一個占位符身份運算符, 對參數(shù)不敏感。
2)torch.nn.Linear它用于對輸入數(shù)據(jù)進行線性變換:y = xAT + b
3)torch.nn.Bilinear它用于對輸入數(shù)據(jù)進行雙線性變換:y = x1 Ax2 + b

2.4?非線性激活函數(shù)-1

非線性激活(加權(quán)和, 非線性)
1)torch.nn.ELU它將用于應(yīng)用按元素的函數(shù):ELU(x)= max(0, x)+ min(0, α*(exp(x)-1))
2)torch.nn.Hardshrink它將用于應(yīng)用硬收縮函數(shù)逐元素函數(shù):
3)torch.nn.LeakyReLU它將用于應(yīng)用按元素的函數(shù):LeakyReLu(x)= max(0, x)+ negative_slope * min(0, x)
4)torch.nn.LogSigmoid它將用于應(yīng)用逐元素函數(shù):
5)torch.nn.MultiheadAttention它用于允許模型關(guān)注來自不同表示子空間的信息
6)torch.nn.PReLU它將用于應(yīng)用按元素的函數(shù):PReLU(x)= max(0, x)+ a * min(0, x)
7)torch.nn.ReLU它將按元素應(yīng)用于整流線性單位函數(shù):ReLU(x)= max(0, x)
8)torch.nn.ReLU6它將用于應(yīng)用按元素的函數(shù):ReLU6(x)= min(max(0, x), 6)
9)torch.nn.RReLU如本文所述, 它將用于逐元素地應(yīng)用隨機泄漏整流線性單位函數(shù):
10)torch.nn.SELU它將按以下方式應(yīng)用按元素的函數(shù):SELU(x)= scale *(max(0, x)+ min(0, a *(exp(x)-1)))這里α= 1.6732632423543772772848170429916717和scale = 1.0507009873554804934193193349852946。
11)PyTorch它將按以下方式應(yīng)用按元素的功能:
12)PyTorch它將按以下方式應(yīng)用按元素的功能:
13)torch.nn.Softplus它將按以下方式應(yīng)用按元素的功能:
14)torch.nn.Softshrink它將按元素應(yīng)用軟收縮功能, 如下所示:
15)torch.nn.Softsign它將按以下方式應(yīng)用按元素的功能:
16)torch.nn.Tanh它將按以下方式應(yīng)用按元素的功能:
17)torch.nn.Tanhshrink它將按以下方式應(yīng)用按元素的函數(shù):Tanhshrink(x)= x-Tanh(x)
18)torch.nn.Threshold它將用于閾值輸入張量的每個元素。閾值定義為:

2.5?非線性激活函數(shù) -2?

非線性激活(其他)
1)torch.nn.Softmin它用于將softmin函數(shù)應(yīng)用于n維輸入張量以重新縮放它們。之后, n維輸出Tensor的元素位于0、1的范圍內(nèi), 且總和為1。Softmin定義為:
2)torch.nn.Softmax它用于將softmax函數(shù)應(yīng)用于n維輸入張量以重新縮放它們。之后, n維輸出Tensor的元素位于0、1的范圍內(nèi), 且總和為1。Softmax定義為:
3)torch.nn.Softmax2d它用于將SoftMax應(yīng)用于要素上的每個空間位置。
4)torch.nn.LogSoftmax它用于將LogSoftmax函數(shù)應(yīng)用于n維輸入張量。 LofSoftmax函數(shù)可以定義為:
5)torch.nn.AdaptiveLogSoftmaxWithLoss這是訓(xùn)練具有較大輸出空間的模型的策略。標簽分布高度不平衡時非常有效

2.6?歸一化處理

歸一化層
1)torch.nn.BatchNorm1d它用于對2D或3D輸入應(yīng)用批量歸一化。
2)torch.nn.BatchNorm2d它用于在4D上應(yīng)用批量歸一化。
3)torch.nn.BatchNorm3d它用于對5D輸入應(yīng)用批量歸一化。
4)torch.nn.GroupNorm它用于在最小輸入批次上應(yīng)用組歸一化。
5)torch.nn.SyncBatchNorm它用于對n維輸入應(yīng)用批量歸一化。
6)torch.nn.InstanceNorm1d它用于在3D輸入上應(yīng)用實例規(guī)范化。
7)torch.nn.InstanceNorm2d它用于在4D輸入上應(yīng)用實例規(guī)范化。
8)torch.nn.InstanceNorm3d它用于在5D輸入上應(yīng)用實例規(guī)范化。
9)torch.nn.LayerNorm它用于在最小輸入批次上應(yīng)用層歸一化。
10)torch.nn.LocalResponseNorm它用于對由多個輸入平面組成的輸入信號進行局部響應(yīng)歸一化, 其中通道占據(jù)第二維。

2.7?各種損失函數(shù)

Loss function
1)torch.nn.L1Loss它用于衡量輸入x和目標y中每個元素之間的平均絕對誤差的標準。未減少的損失可描述為:l(x, y)= L = {l1, …, ln}, ln = | xn-yn |, 其中N是批次大小。
2)torch.nn.MSELoss它用于衡量輸入x和目標y中每個元素之間的均方誤差的標準。未減少的損失可描述為:l(x, y)= L = {l1, …, ln}, ln =(xn-yn)2, 其中N是批次大小。
3)torch.nn.CrossEntropyLoss此條件將nn.LogSoftmax()和nn.NLLLoss()組合在一個類中。當我們訓(xùn)練C類的分類問題時, 這將很有幫助。
4)torch.nn.CTCLoss連接主義者的時間分類損失計算連續(xù)時間序列和目標序列之間的損失。
5)torch.nn.NLLLoss負對數(shù)似然損失用于訓(xùn)練C類的分類問題。
6)torch.nn.PoissonNLLLoss目標的Poisson分布為負的對數(shù)似然損失-目標(Posson(input)loss(input, target)= input-target * log(target!))
7)torch.nn.KLDivLoss這對于連續(xù)分布是有用的距離度量, 并且在我們對連續(xù)輸出分布的空間進行直接回歸時也很有用。
8)torch.nn.BCELoss它用于創(chuàng)建衡量目標和輸出之間的二進制交叉熵的標準。未減少的損失可描述為:l(x, y)= L = {l1, …, ln}, ln = -wn [yn * logxn +(1-yn)* log(1-xn)], 其中N是批次大小。
9)torch.nn.BCEWithLogitsLoss它在一個類別中將Sigmoid層和BCELoss結(jié)合在一起。通過將操作合并到一層, 我們可以利用log-sum-exp技巧來實現(xiàn)數(shù)值穩(wěn)定性。
10)torch.nn.MarginRankingLoss它創(chuàng)建一個標準來測量給定輸入x1, x2, 兩個1D迷你批量張量和包含1或-1的標簽1D迷你批量張量y的損耗。迷你批次中每個樣本的損失函數(shù)如下:loss(x, y)= max(0, -y *(x1-x2)+ margin
11)torch.nn.HingeEmbeddingLossHingeEmbeddingLoss度量給定輸入張量x和包含1或-1的標簽張量y的損失。它用于測量兩個輸入是否相似或不相似。損失函數(shù)定義為:
12)torch.nn.MultiLabelMarginLoss它用于創(chuàng)建優(yōu)化輸入x和輸出y之間的多類多分類鉸鏈損耗的標準。
13)torch.nn.SmoothL1Loss它用于創(chuàng)建一個標準, 如果絕對逐項誤差低于1, 則使用平方項, 否則使用L1項。也稱為胡貝爾損耗:
14)torch.nn.SoftMarginLoss它用于創(chuàng)建優(yōu)化輸入張量x和目標張量y之間(包含1或-1)的兩類分類邏輯損失的標準。
15)torch.nn.MultiLabelSoftMarginLoss它用于創(chuàng)建一個標準, 該標準基于輸入x與大小(N, C)的目標y之間的最大熵來優(yōu)化多標簽對所有損失。
16)torch.nn.CosineEmbeddingLoss它用于創(chuàng)建一個標準, 該標準測量給定輸入張量x1, x2和張量標簽y的值為1或-1的損失。它用于使用余弦距離來測量兩個輸入是相似還是相異。
17)torch.nn.MultiMarginLoss它用于創(chuàng)建優(yōu)化輸入x和輸出y之間的多類分類鉸鏈損耗的標準。
18)torch.nn.TripletMarginLoss它用于創(chuàng)建衡量給定輸入張量x1, x2, x3和值大于0的余量的三重態(tài)損失的標準。它用于衡量樣本之間的相對相似性。三元組由錨點, 正例和負例組成。 L(a, p, n)= max {d(ai, pi)-d(a??i, ni)+ margin, 0}

2.8?CNN卷積層

Convolution layers
1)torch.nn.Conv1d該軟件包將用于對由多個輸入平面組成的輸入信號進行一維卷積。
2)torch.nn.Conv2d該軟件包將用于在由多個輸入平面組成的輸入信號上應(yīng)用2D卷積。
3)torch.nn.Conv3d該軟件包將用于在由多個輸入平面組成的輸入信號上應(yīng)用3D卷積。
4)torch.nn.ConvTranspose1d該軟件包將用于在由多個輸入平面組成的輸入圖像上應(yīng)用一維轉(zhuǎn)置卷積算符。
5)torch.nn.ConvTranspose2d該軟件包將用于在由多個輸入平面組成的輸入圖像上應(yīng)用2D轉(zhuǎn)置卷積運算符。
6)torch.nn.ConvTranspose3d該軟件包將用于在由多個輸入平面組成的輸入圖像上應(yīng)用3D轉(zhuǎn)置卷積運算符。
7)torch.nn。展開它用于從成批的輸入張量中提取滑動局部塊。
8)PyTorch折疊它用于將一系列滑動局部塊組合成一個大的包含張量。

2.9?pooling層

Pooling layers
1)torch.nn.MaxPool1d它用于在由多個輸入平面組成的輸入信號上應(yīng)用一維最大池。
2)torch.nn.MaxPool2d它用于在由多個輸入平面組成的輸入信號上應(yīng)用2D max池。
3)torch.nn.MaxPool3d它用于在由多個輸入平面組成的輸入信號上應(yīng)用3D max池。
4)torch.nn.MaxUnpool1d它用于計算MaxPool1d的局部逆。
5)torch.nn.MaxUnpool2d它用于計算MaxPool2d的局部逆。
6)torch.nn.MaxUnpool3d它用于計算MaxPool3d的局部逆。
7)torch.nn.AvgPool1d它用于在由多個輸入平面組成的輸入信號上應(yīng)用一維平均池。
8)torch.nn.AvgPool2d它用于在由多個輸入平面組成的輸入信號上應(yīng)用2D平均池。
9)torch.nn.AvgPool3d它用于在由多個輸入平面組成的輸入信號上應(yīng)用3D平均池。
10)torch.nn.FractionalMaxPool2d它用于在由多個輸入平面組成的輸入信號上應(yīng)用2D分數(shù)最大池化。
11)torch.nn.LPPool1d它用于在由多個輸入平面組成的輸入信號上應(yīng)用一維功率平均池。
12)torch.nn.LPPool2d它用于在由多個輸入平面組成的輸入信號上應(yīng)用2D功率平均池。
13)torch.nn.AdavtiveMaxPool1d它用于在由多個輸入平面組成的輸入信號上應(yīng)用一維自適應(yīng)最大池化。
14)torch.nn.AdavtiveMaxPool2d它用于在由多個輸入平面組成的輸入信號上應(yīng)用2D自適應(yīng)最大池化。
15)torch.nn.AdavtiveMaxPool3d它用于在由多個輸入平面組成的輸入信號上應(yīng)用3D自適應(yīng)最大池化。
16)torch.nn.AdavtiveAvgPool1d它用于在由多個輸入平面組成的輸入信號上應(yīng)用一維自適應(yīng)平均池。
17)torch.nn.AdavtiveAvgPool2d它用于在由多個輸入平面組成的輸入信號上應(yīng)用2D自適應(yīng)平均池。
18)torch.nn.AdavtiveAvgPool3d它用于在由多個輸入平面組成的輸入信號上應(yīng)用3D自適應(yīng)平均池。

2.10?填充層

填充層
1)torch.nn.ReflectionPad1d它將使用輸入邊界的反射填充輸入張量。
2)torch.nn.ReflactionPad2d它將使用輸入邊界的反射來填充輸入張量。
3)torch.nn.ReplicationPad1它將使用輸入邊界的復(fù)制來填充輸入張量。
4)torch.nn.ReplicationPad2d它將使用輸入邊界的復(fù)制來填充輸入張量。
5)torch.nn.ReplicationPad3d它將使用輸入邊界的復(fù)制來填充輸入張量。
6)torch.nn.ZeroPad2d它將用零填充輸入張量邊界。
7)torch.nn.ConstantPad1d它將用恒定值填充輸入張量邊界。
8)torch.nn.ConstantPad2d它將用恒定值填充輸入張量邊界。
9)torch.nn.ConstantPad3d它將用恒定值填充輸入張量邊界。

2.11?RNN網(wǎng)絡(luò)層

Recurrent layers
1)torch.nn.RNN它用于將具有tanh或ReLU非線性的多層Elman RNN應(yīng)用于輸入序列。每一層為輸入序列中的每個元素計算以下函數(shù):ht = tanh(Wih xt + bih + Whh tt-1 + bhh)
2)Torch.nn.LSTM它用于將多層長期短期記憶(LSTM)RNN應(yīng)用于輸入序列。每一層為輸入序列中的每個元素計算以下功能:
3)GNUPyTorch它用于將多層門控循環(huán)單元(GRU)RNN應(yīng)用于輸入序列。每一層為輸入序列中的每個元素計算以下功能:
4)torch.nn.RNNCell它用于將具有tanh或ReLU非線性的Elman RNN單元應(yīng)用于輸入序列。每一層為輸入序列中的每個元素計算以下函數(shù):h’= tanh(Wih x + bih + Whh h + bhh)使用ReLU代替tanh
5)torch.nn.LSTMCell它用于將長短期記憶(LSTM)單元應(yīng)用于輸入序列。每一層為輸入序列中的每個元素計算以下函數(shù):其中σ是S型函數(shù), 而*是Hadamard乘積。
6)torch.nn.GRUCell它用于將門控循環(huán)單元(GRU)單元應(yīng)用于輸入序列。每一層為輸入序列中的每個元素計算以下功能:

2.12?Dropout層定義

11.Dropout layers
1)torch.nn.Dropout它用于調(diào)節(jié)和預(yù)防神經(jīng)元的共適應(yīng)。培訓(xùn)過程中的一個因素會縮放輸出。這意味著模塊將在評估期間計算身份函數(shù)。
2)torch.nn.Dropout2d如果要素圖中的相鄰像素相關(guān), 則torch.nn.Dropout不會使激活規(guī)則化, 并且會降低有效學(xué)習(xí)率。在這種情況下, torch.nn.Dropout2d()用于促進要素圖之間的獨立性。
3)torch.nn.Dropout3d如果要素圖中的相鄰像素相關(guān), 則torch.nn.Dropout不會使激活規(guī)則化, 并且會降低有效學(xué)習(xí)率。在這種情況下, torch.nn.Dropout2d()用于促進要素圖之間的獨立性。
4)torch.nn.AlphaDropout它用于在輸入上應(yīng)用Alpha Dropout。 Alpha Dropout是一種Dropout, 可以保持自規(guī)范化屬性。

2.13?Sparse layers

12.Sparse layers
1)torch.nn。嵌入它用于存儲單詞嵌入, 并使用索引檢索它們。模塊的輸入是索引列表, 輸出是相應(yīng)的詞嵌入。
2)torch.nn.EmbeddingBag它用于計算嵌入的”袋子”的總和或平均值, 而無需實例化中間嵌入。

2.14?距離功能

距離功能
1)torch.nn.Cosine相似度它將返回x1和x2之間的余弦相似度(沿dim計算)。
2)torch.nn.PairwiseDistance它使用p范數(shù)計算向量v1, v2之間的成批成對距離:

2.15 可視化層

Vision layers
1)torch.nn.PixelShuffle用于將形狀為(*, C×r2, H, W)的張量的元素重新排列為形狀為(*, C, H×r, W, r)的張量的元素
2)torch.nn.Upsample它用于對給定的多通道1D, 2D或3D數(shù)據(jù)進行升采樣。
3)torch.nn.upsamplingNearest2d它用于對由多個輸入通道組成的輸入信號進行2D最近鄰居上采樣。
4)torch.nn.UpsamplingBilinear2d用于將二維雙線性上采樣應(yīng)用于由多個輸入通道組成的輸入信號。

2.16 并行數(shù)據(jù)層

16.DataParallel層(多GPU, 分布式)
1)torch.nn.DataParallel它用于在模塊級別實現(xiàn)數(shù)據(jù)并行性。
2)torch.nn.DistributedDataParallel它用于實現(xiàn)分布式數(shù)據(jù)并行性, 它基于模塊級別的torch.distributed包。
3)torch.nn.DistributedDataParallelCPU它用于在模塊級別為CPU實現(xiàn)分布式數(shù)據(jù)并行性。

2.17?各種工具

Utilities
1)torch.nn.clip_grad_norm_它用于裁剪可迭代參數(shù)的梯度范數(shù)。
2)torch.nn.clip_grad_value_用于將可迭代參數(shù)的梯度范數(shù)裁剪為指定值。
3)torch.nn.parameters_to_vector用于將參數(shù)轉(zhuǎn)換為一個向量。
4)torch.nn.vector_to_parameters它用于將一個向量轉(zhuǎn)換為參數(shù)。
5)torch.nn.weight_norm它用于對給定模塊中的參數(shù)應(yīng)用權(quán)重歸一化。
6)torch.nn.remove_weight_norm它用于刪除模塊的權(quán)重歸一化和重新參數(shù)化。
7)torch.nn.spectral_norm它用于將頻譜歸一化應(yīng)用于給定模塊中的參數(shù)。
8)torch.nn.PackedSequence它將用于保存打包序列的數(shù)據(jù)和batch_size的列表。
9)torch.nn.pack_padded_sequence它用于打包包含可變長度填充序列的Tensor。
10)torch.nn.pad_packed_sequence它用于填充打包的可變長度序列批次。
11)torch.nn.pad_sequence它用于填充具有填充值的可變長度張量列表。
12)torch.nn.pack_sequence它用于打包可變長度張量的列表
13)torch.nn.remove_spectral_norm它用于刪除模塊的頻譜歸一化和重新參數(shù)化。

作者主頁(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文網(wǎng)址:https://blog.csdn.net/HiWangWenBing/article/details/120606523

總結(jié)

以上是生活随笔為你收集整理的[Pytorch系列-28]:神经网络基础 - torch.nn模块功能列表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。