torch.nn¶
這些是圖表的基本建構區塊
torch.nn
一種不應被視為模型參數的 Tensor。 |
|
一種應被視為模組參數的 Tensor。 |
|
尚未初始化的參數。 |
|
尚未初始化的緩衝區。 |
容器 (Containers)¶
所有神經網路模組的基底類別。 |
|
一個序列容器。 |
|
在列表中保存子模組。 |
|
在字典中保存子模組。 |
|
在列表中保存參數。 |
|
在字典中保存參數。 |
模組的全域 Hook
註冊一個適用於所有模組的前向預處理 Hook。 |
|
為所有模組註冊一個全域前向 Hook。 |
|
註冊一個適用於所有模組的反向 Hook。 |
|
註冊一個適用於所有模組的反向預處理 Hook。 |
|
註冊一個適用於所有模組的反向 Hook。 |
|
註冊一個適用於所有模組的緩衝區註冊 Hook。 |
|
註冊一個適用於所有模組的模組註冊 Hook。 |
|
註冊一個適用於所有模組的參數註冊 Hook。 |
卷積層 (Convolution Layers)¶
對由多個輸入平面組成的輸入訊號應用一維卷積。 |
|
對由多個輸入平面組成的輸入訊號應用二維卷積。 |
|
對由多個輸入平面組成的輸入訊號應用三維卷積。 |
|
對由多個輸入平面組成的輸入影像應用一維轉置卷積運算。 |
|
對由多個輸入平面組成的輸入影像應用二維轉置卷積運算。 |
|
對由多個輸入平面組成的輸入影像應用三維轉置卷積運算。 |
|
一個 |
|
一個 |
|
一個 |
|
一個 |
|
一個 |
|
一個 |
|
從批次輸入 Tensor 中提取滑動的局部區塊。 |
|
將滑動的局部區塊陣列合併成一個大的包含 Tensor。 |
池化層 (Pooling layers)¶
對由多個輸入平面組成的輸入訊號應用一維最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用二維最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用三維最大池化。 |
|
計算 |
|
計算 |
|
計算 |
|
對由多個輸入平面組成的輸入訊號應用一維平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用二維平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用三維平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用二維分數最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用三維分數最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用一維冪平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用二維冪平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用三維冪平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用一維自適應最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用二維自適應最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用三維自適應最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用一維自適應平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用二維自適應平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用三維自適應平均池化。 |
填充層 (Padding Layers)¶
使用輸入邊界的反射來填充輸入 Tensor。 |
|
使用輸入邊界的反射來填充輸入 Tensor。 |
|
使用輸入邊界的反射來填充輸入 Tensor。 |
|
使用輸入邊界的複製來填充輸入 Tensor。 |
|
使用輸入邊界的複製來填充輸入 Tensor。 |
|
使用輸入邊界的複製來填充輸入 Tensor。 |
|
使用零填充輸入 Tensor 邊界。 |
|
使用零填充輸入 Tensor 邊界。 |
|
使用零填充輸入 Tensor 邊界。 |
|
使用常數值填充輸入 Tensor 邊界。 |
|
使用常數值填充輸入 Tensor 邊界。 |
|
使用常數值填充輸入 Tensor 邊界。 |
|
使用輸入邊界的循環填充來填充輸入 Tensor。 |
|
使用輸入邊界的循環填充來填充輸入 Tensor。 |
|
使用輸入邊界的循環填充來填充輸入 Tensor。 |
非線性激活 (加權和,非線性) (Non-linear Activations (weighted sum, nonlinearity))¶
逐元素地應用指數線性單元 (ELU) 函數。 |
|
逐元素套用 Hard Shrinkage (Hardshrink) 函數。 |
|
逐元素套用 Hardsigmoid 函數。 |
|
逐元素套用 HardTanh 函數。 |
|
逐元素套用 Hardswish 函數。 |
|
逐元素套用 LeakyReLU 函數。 |
|
逐元素套用 Logsigmoid 函數。 |
|
允許模型共同關注來自不同表示子空間的資訊。 |
|
套用逐元素的 PReLU 函數。 |
|
逐元素套用 rectified linear unit 函數。 |
|
逐元素套用 ReLU6 函數。 |
|
逐元素套用 randomized leaky rectified linear unit 函數。 |
|
逐元素套用 SELU 函數。 |
|
逐元素套用 CELU 函數。 |
|
套用 Gaussian Error Linear Units 函數。 |
|
逐元素套用 Sigmoid 函數。 |
|
逐元素套用 Sigmoid Linear Unit (SiLU) 函數。 |
|
逐元素套用 Mish 函數。 |
|
逐元素套用 Softplus 函數。 |
|
逐元素套用 soft shrinkage 函數。 |
|
套用逐元素的 Softsign 函數。 |
|
逐元素套用 Hyperbolic Tangent (Tanh) 函數。 |
|
套用逐元素的 Tanhshrink 函數。 |
|
對輸入 Tensor 的每個元素進行閾值處理。 |
|
套用 gated linear unit 函數。 |
非線性激活函數 (其他)¶
對 n 維輸入 Tensor 套用 Softmin 函數。 |
|
對 n 維輸入 Tensor 套用 Softmax 函數。 |
|
將 SoftMax 應用於每個空間位置的特徵。 |
|
將 函數應用於 n 維輸入 Tensor。 |
|
高效的 softmax 近似。 |
正規化層¶
對 2D 或 3D 輸入套用批次正規化。 |
|
對 4D 輸入套用批次正規化。 |
|
對 5D 輸入套用批次正規化。 |
|
一個具有延遲初始化的 |
|
一個具有延遲初始化的 |
|
一個具有延遲初始化的 |
|
對一小批輸入套用群組正規化。 |
|
對 N 維輸入套用批次正規化。 |
|
套用實例正規化。 |
|
套用實例正規化。 |
|
套用實例正規化。 |
|
一個具有 |
|
一個具有 |
|
一個具有 |
|
對一小批輸入套用層正規化。 |
|
對輸入訊號套用局部響應正規化。 |
|
對一小批輸入套用 Root Mean Square Layer Normalization。 |
循環層¶
RNN 模組 (RNN、LSTM、GRU) 的基底類別。 |
|
將具有 或 非線性函數的多層 Elman RNN 應用於輸入序列。 |
|
將多層長短期記憶 (LSTM) RNN 應用於輸入序列。 |
|
將多層 gated recurrent unit (GRU) RNN 應用於輸入序列。 |
|
具有 tanh 或 ReLU 非線性函數的 Elman RNN cell。 |
|
一個長短期記憶 (LSTM) cell。 |
|
一個 gated recurrent unit (GRU) cell。 |
Transformer 層¶
一個 transformer 模型。 |
|
TransformerEncoder 是一個 N 個編碼器層的堆疊。 |
|
TransformerDecoder 是一個 N 個解碼器層的堆疊。 |
|
TransformerEncoderLayer 由 self-attn 和 feedforward network 組成。 |
|
TransformerDecoderLayer 由 self-attn、multi-head-attn 和 feedforward network 組成。 |
線性層¶
一個不區分參數的佔位符 identity 運算符。 |
|
將仿射線性轉換應用於傳入的資料: 。 |
|
將雙線性轉換應用於傳入的資料: 。 |
|
一個 |
Dropout 層¶
在訓練期間,以機率 |
|
隨機歸零整個通道。 |
|
隨機歸零整個通道。 |
|
隨機歸零整個通道。 |
|
將 Alpha Dropout 應用於輸入。 |
|
隨機遮罩整個通道。 |
損失函數¶
建立一個標準,用於測量輸入 和目標 中每個元素的平均絕對誤差 (MAE)。 |
|
建立一個標準,用於測量輸入 和目標 中每個元素的均方誤差(平方 L2 範數)。 |
|
此標準計算輸入 logits 和目標之間的交叉熵損失。 |
|
Connectionist Temporal Classification 損失。 |
|
負對數概似損失。 |
|
具有目標 Poisson 分佈的負對數概似損失。 |
|
高斯負對數概似損失。 |
|
Kullback-Leibler 散度損失。 |
|
建立一個標準,用於測量目標和輸入機率之間的二元交叉熵。 |
|
此損失將 Sigmoid 層和 BCELoss 組合在一個單一類別中。 |
|
建立一個標準,用來衡量給定輸入 、,兩個 1D mini-batch 或 0D Tensors,以及一個 label 1D mini-batch 或 0D Tensor (包含 1 或 -1) 的損失。 |
|
衡量給定輸入 tensor 和 label tensor (包含 1 或 -1) 的損失。 |
|
建立一個標準,用來最佳化輸入 (一個 2D mini-batch Tensor) 和輸出 (一個目標類別索引的 2D Tensor) 之間的多類別多重分類 hinge loss (基於邊界的損失)。 |
|
建立一個標準,如果絕對的逐元素誤差小於 delta,則使用平方項;否則使用 delta 縮放的 L1 項。 |
|
建立一個標準,如果絕對的逐元素誤差小於 beta,則使用平方項;否則使用 L1 項。 |
|
建立一個標準,用來最佳化輸入 tensor 和目標 tensor (包含 1 或 -1) 之間的雙類別分類 logistic 損失。 |
|
建立一個標準,用來最佳化基於最大熵的 multi-label one-versus-all 損失,介於輸入 和大小為 的目標 之間。 |
|
建立一個標準,用來衡量給定輸入 tensors 、 和一個值為 1 或 -1 的 Tensor label 的損失。 |
|
建立一個準則,用於優化輸入 (一個 2D mini-batch Tensor) 和輸出 (一個目標類別索引的 1D tensor,) 之間的多類別分類 hinge loss (基於邊界的損失)。 |
|
建立一個準則,用於測量給定輸入 tensors 、、 和邊界值大於 的 triplet loss。 |
|
建立一個準則,用於測量給定輸入 tensors 、 和 (分別代表 anchor、positive 和 negative 範例) 的 triplet loss,以及用於計算 anchor 和 positive 範例之間關係("positive distance")和 anchor 和 negative 範例之間關係("negative distance")的非負實值函數("distance function")。 |
視覺層¶
根據放大因子重新排列 tensor 中的元素。 |
|
反轉 PixelShuffle 操作。 |
|
對給定的多通道 1D (時間)、2D (空間) 或 3D (體積) 數據進行升採樣。 |
|
將 2D 最近鄰升採樣應用於由多個輸入通道組成的輸入訊號。 |
|
將 2D 雙線性升採樣應用於由多個輸入通道組成的輸入訊號。 |
DataParallel 層 (多 GPU,分散式)¶
在模組級別實現數據平行化。 |
|
在模組級別基於 |
實用工具¶
來自 torch.nn.utils
模組
用於裁剪參數梯度的實用函數。
裁剪參數 iterable 的梯度範數。 |
|
裁剪參數 iterable 的梯度範數。 |
|
在指定值裁剪參數 iterable 的梯度。 |
|
計算 tensors iterable 的範數。 |
|
給定預先計算的總範數和所需的 max 範數,縮放參數 iterable 的梯度。 |
用於將 Module 參數扁平化和非扁平化為單個向量的實用函數。
將參數 iterable 扁平化為單個向量。 |
|
將向量的切片複製到參數 iterable 中。 |
用於融合具有 BatchNorm 模組的 Module 的實用函數。
將卷積模組和 BatchNorm 模組融合到單個新的卷積模組中。 |
|
將卷積模組參數和 BatchNorm 模組參數融合到新的卷積模組參數中。 |
|
將線性模組和 BatchNorm 模組融合到單個新的線性模組中。 |
|
將線性模組參數和 BatchNorm 模組參數融合到新的線性模組參數中。 |
用於轉換 Module 參數記憶體格式的實用函數。
將 |
|
將 |
用於從 Module 參數應用和移除權重正規化的實用函數。
將權重正規化應用於給定模組中的參數。 |
|
從模組中移除權重正規化重新參數化。 |
|
將譜正規化應用於給定模組中的參數。 |
|
從模組中移除譜正規化重新參數化。 |
用於初始化 Module 參數的實用函數。
給定模組類別物件和 args / kwargs,實例化模組而不初始化參數 / 緩衝區。 |
用於修剪 Module 參數的實用類別和函數。
用於建立新修剪技術的抽象基類。 |
|
用於迭代剪枝的剪枝方法序列的容器。 |
|
實用剪枝方法,不剪除任何單元,但會產生一個由 1 組成的遮罩的剪枝參數化。 |
|
隨機剪除張量中(目前未剪除的)單元。 |
|
透過將 L1 範數最低的單元歸零,來剪除張量中(目前未剪除的)單元。 |
|
隨機剪除張量中整個(目前未剪除的)通道。 |
|
根據 L |
|
套用剪枝重新參數化,而不剪除任何單元。 |
|
透過移除隨機(目前未剪除的)單元來剪除張量。 |
|
透過移除 L1 範數最低的單元來剪除張量。 |
|
透過沿指定維度移除隨機通道來剪除張量。 |
|
透過沿指定維度移除 L |
|
透過套用指定的 |
|
透過套用 |
|
從模組中移除剪枝重新參數化,並從前向鉤子中移除剪枝方法。 |
|
透過尋找剪枝前置鉤子來檢查模組是否已剪枝。 |
使用 torch.nn.utils.parameterize.register_parametrization()
中的新參數化功能實現的參數化。
將正交或 unitary 參數化套用到矩陣或一批矩陣。 |
|
將權重正規化應用於給定模組中的參數。 |
|
將譜正規化應用於給定模組中的參數。 |
用於在現有模組上參數化張量的實用函式。請注意,這些函式可用於參數化給定的 Parameter 或 Buffer,給定一個將輸入空間映射到參數化空間的特定函式。它們不是會將物件轉換為參數的參數化。 有關如何實現自己的參數化的更多信息,請參閱參數化教學課程。
將參數化註冊到模組中的張量。 |
|
移除模組中張量上的參數化。 |
|
上下文管理器,啟用在 |
|
確定模組是否具有參數化。 |
一個循序容器,用於保存和管理參數化 |
以無狀態方式呼叫給定模組的實用函式。
透過將模組參數和緩衝區替換為提供的參數和緩衝區,對模組執行函式呼叫。 |
其他模組中的實用函式
保存壓縮序列的資料和 |
|
壓縮包含可變長度填補序列的張量。 |
|
填補可變長度序列的壓縮批次。 |
|
使用 |
|
壓縮可變長度張量的清單。 |
|
將 PackedSequence 解壓縮為可變長度張量的清單。 |
|
將填補的張量解填補為可變長度張量的清單。 |
將連續範圍的維度扁平化為一個張量。 |
|
解扁平化一個張量維度,將其擴展到所需的形狀。 |
量化函式¶
量化是指以低於浮點精度的位寬執行計算和儲存張量的技術。 PyTorch 支援每個張量和每個通道的非對稱線性量化。 若要了解如何在 PyTorch 中使用量化函式的更多資訊,請參閱 量化 文件。