torch.nn¶
這些是圖的基本建構模組
torch.nn
一種被視為模組參數的張量。 |
|
未初始化的參數。 |
|
未初始化的緩衝區。 |
容器¶
所有神經網路模組的基類。 |
|
一個序列式容器。 |
|
在列表中保存子模組。 |
|
在字典中保存子模組。 |
|
在列表中保存參數。 |
|
在字典中保存參數。 |
模組的全局鉤子
註冊一個所有模組通用的前向預處理鉤子。 |
|
為所有模組註冊一個全局前向鉤子。 |
|
註冊一個所有模組通用的反向鉤子。 |
|
註冊一個所有模組通用的反向預處理鉤子。 |
|
註冊一個所有模組通用的反向鉤子。 |
|
註冊一個所有模組通用的緩衝區註冊鉤子。 |
|
註冊一個所有模組通用的模組註冊鉤子。 |
|
註冊一個所有模組通用的參數註冊鉤子。 |
卷積層¶
對由多個輸入平面組成的輸入信號應用一維卷積。 |
|
對由多個輸入平面組成的輸入信號應用二維卷積。 |
|
對由多個輸入平面組成的輸入信號應用三維卷積。 |
|
對由多個輸入平面組成的輸入影像應用一維轉置卷積運算子。 |
|
對由多個輸入平面組成的輸入影像應用二維轉置卷積運算子。 |
|
對由多個輸入平面組成的輸入影像應用三維轉置卷積運算子。 |
|
具有 |
|
具有 |
|
具有 |
|
具有 |
|
具有 |
|
具有 |
|
從批次輸入張量中提取滑動局部塊。 |
|
將滑動局部塊陣列組合成一個大的包含張量。 |
池化層¶
對由多個輸入平面組成的輸入信號應用一維最大池化。 |
|
對由多個輸入平面組成的輸入信號應用二維最大池化。 |
|
對由多個輸入平面組成的輸入信號應用三維最大池化。 |
|
計算 |
|
計算 |
|
計算 |
|
對由多個輸入平面組成的輸入信號應用一維平均池化。 |
|
對由多個輸入平面組成的輸入信號應用二維平均池化。 |
|
對由多個輸入平面組成的輸入信號應用三維平均池化。 |
|
對由多個輸入平面組成的輸入信號,套用二維分數最大池化。 |
|
對由多個輸入平面組成的輸入信號,套用三維分數最大池化。 |
|
對由多個輸入平面組成的輸入信號,套用一維冪平均池化。 |
|
對由多個輸入平面組成的輸入信號,套用二維冪平均池化。 |
|
對由多個輸入平面組成的輸入信號,套用三維冪平均池化。 |
|
對由多個輸入平面組成的輸入信號,套用一維自適應最大池化。 |
|
對由多個輸入平面組成的輸入信號,套用二維自適應最大池化。 |
|
對由多個輸入平面組成的輸入信號,套用三維自適應最大池化。 |
|
對由多個輸入平面組成的輸入信號,套用一維自適應平均池化。 |
|
對由多個輸入平面組成的輸入信號,套用二維自適應平均池化。 |
|
對由多個輸入平面組成的輸入信號,套用三維自適應平均池化。 |
填充層¶
使用輸入邊界的反射來填充輸入張量。 |
|
使用輸入邊界的反射來填充輸入張量。 |
|
使用輸入邊界的反射來填充輸入張量。 |
|
使用輸入邊界的複製來填充輸入張量。 |
|
使用輸入邊界的複製來填充輸入張量。 |
|
使用輸入邊界的複製來填充輸入張量。 |
|
使用零來填充輸入張量邊界。 |
|
使用零來填充輸入張量邊界。 |
|
使用零來填充輸入張量邊界。 |
|
使用常數值來填充輸入張量邊界。 |
|
使用常數值來填充輸入張量邊界。 |
|
使用常數值來填充輸入張量邊界。 |
|
使用輸入邊界的循環填充來填充輸入張量。 |
|
使用輸入邊界的循環填充來填充輸入張量。 |
|
使用輸入邊界的循環填充來填充輸入張量。 |
非線性激活函數(加權和,非線性)¶
逐元素套用指數線性單元 (ELU) 函數。 |
|
逐元素套用硬縮減 (Hardshrink) 函數。 |
|
逐元素套用 Hardsigmoid 函數。 |
|
逐元素套用 HardTanh 函數。 |
|
逐元素套用 Hardswish 函數。 |
|
逐元素套用 LeakyReLU 函數。 |
|
逐元素套用 Logsigmoid 函數。 |
|
允許模型共同關注來自不同表示子空間的信息。 |
|
逐元素套用 PReLU 函數。 |
|
逐元素套用整流線性單元函數。 |
|
逐元素套用 ReLU6 函數。 |
|
逐元素套用隨機洩漏整流線性單元函數。 |
|
逐元素套用 SELU 函數。 |
|
逐元素套用 CELU 函數。 |
|
套用高斯誤差線性單元函數。 |
|
逐元素套用 Sigmoid 函數。 |
|
逐元素套用 Sigmoid 線性單元 (SiLU) 函數。 |
|
逐元素套用 Mish 函數。 |
|
逐元素套用 Softplus 函數。 |
|
逐元素套用軟縮減函數。 |
|
逐元素套用 Softsign 函數。 |
|
逐元素套用雙曲正切 (Tanh) 函數。 |
|
逐元素套用 Tanhshrink 函數。 |
|
對輸入張量的每個元素進行閾值處理。 |
|
套用門控線性單元函數。 |
非線性激活函數(其他)¶
將 Softmin 函數套用於 n 維輸入張量。 |
|
將 Softmax 函數套用於 n 維輸入張量。 |
|
對每個空間位置的特徵套用 SoftMax。 |
|
將 函數套用於 n 維輸入張量。 |
|
高效的 softmax 近似。 |
正規化層¶
對二維或三維輸入套用批次正規化。 |
|
對四維輸入套用批次正規化。 |
|
對五維輸入套用批次正規化。 |
|
具有延遲初始化的 |
|
具有延遲初始化的 |
|
具有延遲初始化的 |
|
對小批量輸入套用群組正規化。 |
|
對 N 維輸入套用批次正規化。 |
|
套用實例正規化。 |
|
套用實例正規化。 |
|
套用實例正規化。 |
|
具有延遲初始化 |
|
具有延遲初始化 |
|
具有延遲初始化 |
|
對小批量輸入套用層正規化。 |
|
對輸入信號套用局部響應正規化。 |
|
對小批量輸入套用均方根層正規化。 |
循環層¶
RNN 模組(RNN、LSTM、GRU)的基類。 |
|
將具有 或 非線性的多層 Elman RNN 套用於輸入序列。 |
|
將多層長短期記憶 (LSTM) RNN 套用於輸入序列。 |
|
將多層門控循環單元 (GRU) RNN 套用於輸入序列。 |
|
具有 tanh 或 ReLU 非線性的 Elman RNN 單元。 |
|
長短期記憶 (LSTM) 單元。 |
|
門控循環單元 (GRU) 單元。 |
Transformer 層¶
Transformer 模型。 |
|
TransformerEncoder 是 N 個編碼器層的堆疊。 |
|
TransformerDecoder 是 N 個解碼器層的堆疊。 |
|
TransformerEncoderLayer 由自注意力機制和前饋網路組成。 |
|
TransformerDecoderLayer 由自注意力機制、多頭注意力機制和前饋網路組成。 |
線性層¶
一個對參數不敏感的佔位符號恆等運算符。 |
|
對輸入數據套用仿射線性變換:. |
|
對輸入數據套用雙線性變換:. |
|
一個 |
Dropout 層¶
在訓練期間,以機率 |
|
隨機將整個通道歸零。 |
|
隨機將整個通道歸零。 |
|
隨機將整個通道歸零。 |
|
對輸入應用 Alpha Dropout。 |
|
隨機遮蔽整個通道。 |
損失函數¶
創建一個準則,用於測量輸入 和目標 中每個元素之間的平均絕對誤差 (MAE)。 |
|
創建一個準則,用於測量輸入 和目標 中每個元素之間的均方誤差(平方 L2 範數)。 |
|
此準則計算輸入 logits 和目標之間的交叉熵損失。 |
|
連接主義時間分類損失。 |
|
負對數似然損失。 |
|
具有目標泊松分佈的負對數似然損失。 |
|
高斯負對數似然損失。 |
|
Kullback-Leibler 散度損失。 |
|
創建一個準則,用於測量目標和輸入機率之間的二元交叉熵 |
|
此損失在單一類別中結合了 Sigmoid 層和 BCELoss。 |
|
創建一個準則,用於測量給定輸入 、(兩個一維迷你批次或零維 張量)和標籤一維迷你批次或零維 張量 (包含 1 或 -1)的損失。 |
|
測量給定輸入張量 和標籤張量 (包含 1 或 -1)的損失。 |
|
創建一個準則,用於最佳化輸入 (一個二維迷你批次 張量)和輸出 (一個二維目標類別索引的 張量)之間的多類別多分類鉸鏈損失(基於邊緣的損失)。 |
|
創建一個準則,如果絕對元素誤差低於 delta,則使用平方項,否則使用 delta 調整的 L1 項。 |
|
創建一個準則,如果絕對元素誤差低於 beta,則使用平方項,否則使用 L1 項。 |
|
創建一個準則,用於最佳化輸入張量 和目標張量 (包含 1 或 -1)之間的二元分類邏輯損失。 |
|
創建一個準則,用於最佳化基於最大熵的多標籤一對多損失,在大小為 的輸入 和目標 之間。 |
|
創建一個準則,用於測量給定輸入張量 、 和 張量 標籤 (值為 1 或 -1)的損失。 |
|
創建一個準則,用於優化輸入 (一個二維迷你批次 Tensor)和輸出 (一個一維目標類別索引的張量,)之間的多類別分類鉸鏈損失(基於邊緣的損失)。 |
|
創建一個準則,用於測量給定輸入張量 、、 和邊緣值大於 的三元組損失。 |
|
創建一個準則,用於測量給定輸入張量 、 和 (分別代表錨點、正例和負例)以及用於計算錨點和正例之間的關係(“正距離”)以及錨點和負例之間的關係(“負距離”)的非負實值函數(“距離函數”)的三元組損失。 |
視覺層¶
根據放大因子重新排列張量中的元素。 |
|
反轉 PixelShuffle 操作。 |
|
對給定的多通道一維(時間)、二維(空間)或三維(體積)數據進行上採樣。 |
|
對由多個輸入通道組成的輸入信號應用二維最近鄰上採樣。 |
|
對由多個輸入通道組成的輸入信號應用二維雙線性上採樣。 |
DataParallel 層(多 GPU、分散式)¶
在模組級別實作數據並行。 |
|
在模組級別基於 |
工具¶
來自 torch.nn.utils 模組
用於裁剪參數梯度的工具函數。
裁剪可迭代參數的梯度範數。 |
|
裁剪可迭代參數的梯度範數。 |
|
將可迭代參數的梯度裁剪到指定值。 |
用於將模組參數扁平化和取消扁平化為單一向量的工具函數。
將可迭代參數扁平化為單一向量。 |
|
將向量的切片複製到可迭代參數中。 |
用於將模組與 BatchNorm 模組融合的工具函數。
將卷積模組和 BatchNorm 模組融合為單個新的卷積模組。 |
|
將卷積模組參數和 BatchNorm 模組參數融合為新的卷積模組參數。 |
|
將線性模組和 BatchNorm 模組融合為單個新的線性模組。 |
|
將線性模組參數和 BatchNorm 模組參數融合為新的線性模組參數。 |
用於轉換模組參數記憶體格式的工具函數。
將 |
|
將 |
用於應用和移除模組參數權重正規化的工具函數。
對給定模組中的參數應用權重正規化。 |
|
從模組中移除權重正規化重新參數化。 |
|
對給定模組中的參數應用譜正規化。 |
|
從模組中移除譜正規化重新參數化。 |
用於初始化模組參數的工具函數。
給定一個模組類別物件和 args / kwargs,實例化模組而不初始化參數/緩衝區。 |
用於修剪模組參數的工具類別和函數。
用於創建新的修剪技術的抽象基類別。 |
|
容器,包含用於迭代修剪的修剪方法序列。 |
|
實用修剪方法,不修剪任何單元,但使用全 1 掩碼生成修剪參數化。 |
|
隨機修剪張量中(當前未修剪的)單元。 |
|
通過將 L1 範數最低的單元歸零來修剪張量中(當前未修剪的)單元。 |
|
隨機修剪張量中整個(當前未修剪的)通道。 |
|
根據其 L |
|
應用修剪重新參數化而不修剪任何單元。 |
|
通過移除隨機(當前未修剪的)單元來修剪張量。 |
|
通過移除 L1 範數最低的單元來修剪張量。 |
|
通過沿指定維度移除隨機通道來修剪張量。 |
|
通過沿指定維度移除 L |
|
通過應用指定的 |
|
通過應用 |
|
從模組中移除修剪重新參數化,並從前向鉤子中移除修剪方法。 |
|
通過查找修剪預先鉤子來檢查模組是否被修剪。 |
使用 torch.nn.utils.parameterize.register_parametrization() 中的新參數化功能實現的參數化。
對矩陣或一批矩陣應用正交或酉參數化。 |
|
對給定模組中的參數應用權重正規化。 |
|
對給定模組中的參數應用譜正規化。 |
用於在現有模組上參數化張量的工具函數。請注意,這些函數可用於在給定從輸入空間映射到參數化空間的特定函數的情況下,參數化給定的參數或緩衝區。它們不是將物件轉換為參數的參數化。有關如何實現自己的參數化的更多信息,請參閱 參數化教程。
將參數化註冊到模組中的張量。 |
|
移除模組中張量上的參數化。 |
|
上下文管理器,用於在使用 |
|
確定模組是否具有參數化。 |
一個順序容器,用於保存和管理參數化的 |
用於以無狀態方式調用給定模組的工具函數。
通過將模組參數和緩衝區替換為提供的參數和緩衝區,在模組上執行函數調用。 |
其他模組中的工具函數
保存打包序列的數據和 |
|
打包包含變長填充序列的張量。 |
|
填充一批打包的變長序列。 |
|
使用 |
|
打包可變長度張量列表。 |
|
將 PackedSequence 解包成可變長度張量列表。 |
|
將填充後的張量解包成可變長度張量列表。 |
將連續的維度範圍展平成張量。 |
|
展開張量維度,將其擴展為所需的形狀。 |