torch.nn#
建立日期:2016 年 12 月 23 日 | 最後更新日期:2025 年 7 月 25 日
These are the basic building blocks for graphs
torch.nn
容器#
模組的全域性鉤子
為所有模組註冊一個前向預鉤子。 |
|
為所有模組註冊一個全域性前向鉤子。 |
|
註冊所有模組通用的後向鉤子。 |
|
為所有模組註冊一個後向預鉤子。 |
|
註冊所有模組通用的後向鉤子。 |
|
為所有模組註冊一個緩衝區註冊鉤子。 |
|
為所有模組註冊一個模組註冊鉤子。 |
|
為所有模組註冊一個引數註冊鉤子。 |
卷積層#
對由多個輸入平面組成的輸入訊號進行1D卷積操作。 |
|
在由多個輸入平面組成的輸入訊號上應用二維卷積。 |
|
對由多個輸入平面組成的輸入訊號應用 3D 卷積。 |
|
對由多個輸入平面組成的輸入影像應用 1D 轉置卷積運算子。 |
|
對由多個輸入平面組成的輸入影像應用 2D 轉置卷積運算子。 |
|
對由多個輸入平面組成的輸入影像應用 3D 轉置卷積運算元。 |
|
一個 |
|
一個 |
|
一個 |
|
一個 |
|
一個 |
|
一個 |
|
從批處理的輸入 Tensor 中提取滑動區域性塊。 |
|
將一組滑動區域性塊組合成一個大的包含 Tensor。 |
池化層#
對由多個輸入平面組成的輸入訊號應用 1D 最大池化。 |
|
在由多個輸入平面組成的輸入訊號上應用 2D 最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用 3D 最大池化。 |
|
計算 |
|
計算 |
|
計算 |
|
對由多個輸入平面組成的輸入訊號進行1D平均池化操作。 |
|
對由多個輸入平面組成的輸入訊號應用 2D 平均池化。 |
|
對由多個輸入層組成的輸入訊號應用 3D 平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用 2D 分數最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用 3D 分數最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用一維 p-範數平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用 2D 冪平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用 3D 冪平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用 1D 自適應最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用 2D 自適應最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用 3D 自適應最大池化。 |
|
對由多個輸入平面組成的輸入訊號應用 1D 自適應平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用二維自適應平均池化。 |
|
對由多個輸入平面組成的輸入訊號應用 3D 自適應平均池化。 |
填充層#
使用輸入邊界的反射來填充輸入張量。 |
|
使用輸入邊界的反射來填充輸入張量。 |
|
使用輸入邊界的反射來填充輸入張量。 |
|
使用輸入邊界的複製來填充輸入張量。 |
|
使用輸入邊界的複製來填充輸入張量。 |
|
使用輸入邊界的複製來填充輸入張量。 |
|
用零填充輸入張量邊界。 |
|
用零填充輸入張量邊界。 |
|
用零填充輸入張量邊界。 |
|
用常數值填充輸入張量邊界。 |
|
用常數值填充輸入張量邊界。 |
|
用常數值填充輸入張量邊界。 |
|
使用輸入邊界的迴圈填充來填充輸入張量。 |
|
使用輸入邊界的迴圈填充來填充輸入張量。 |
|
使用輸入邊界的迴圈填充來填充輸入張量。 |
非線性啟用(加權和,非線性)#
逐元素應用指數線性單元 (ELU) 函式。 |
|
逐元素應用 Hard Shrinkage (Hardshrink) 函式。 |
|
逐元素應用 Hardsigmoid 函式。 |
|
逐元素應用 HardTanh 函式。 |
|
逐元素應用 Hardswish 函式。 |
|
逐元素應用 LeakyReLU 函式。 |
|
逐元素應用 Logsigmoid 函式。 |
|
允許模型聯合關注來自不同表示子空間的資訊。 |
|
應用逐元素的 PReLU 函式。 |
|
逐元素應用線性整流單元函式。 |
|
逐元素應用 ReLU6 函式。 |
|
逐元素應用隨機的 Leaky Rectified Linear Unit 函式。 |
|
逐元素應用 SELU 函式。 |
|
逐元素應用 CELU 函式。 |
|
應用高斯誤差線性單元函式。 |
|
逐元素應用 Sigmoid 函式。 |
|
逐元素應用 Sigmoid 線性單元 (SiLU) 函式。 |
|
逐元素應用 Mish 函式。 |
|
逐元素應用 Softplus 函式。 |
|
逐元素應用 soft shrinkage 函式。 |
|
逐元素應用 Softsign 函式。 |
|
逐元素應用雙曲正切 (Tanh) 函式。 |
|
逐元素應用 Tanhshrink 函式。 |
|
對輸入 Tensor 的每個元素進行閾值處理。 |
|
應用門控線性單元函式。 |
非線性啟用(其他)#
對 n 維輸入 Tensor 應用 Softmin 函式。 |
|
將 Softmax 函式應用於 n 維輸入張量。 |
|
對每個空間位置應用特徵上的 SoftMax。 |
|
對 n 維輸入 Tensor 應用 函式。 |
|
高效的 softmax 近似。 |
歸一化層#
對 2D 或 3D 輸入應用批歸一化。 |
|
對 4D 輸入應用 Batch Normalization。 |
|
對 5D 輸入應用批歸一化。 |
|
一個具有延遲初始化的 |
|
一個具有延遲初始化的 |
|
一個具有延遲初始化的 |
|
對輸入的小批次應用組歸一化。 |
|
對 N 維輸入應用批歸一化。 |
|
應用例項歸一化。 |
|
應用例項歸一化。 |
|
應用例項歸一化。 |
|
一個具有 |
|
一個具有 |
|
一個具有 |
|
對輸入 mini-batch 應用層歸一化。 |
|
對輸入訊號應用區域性響應歸一化。 |
|
對輸入的小批次應用均方根層歸一化。 |
迴圈層#
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 和 target 之間的交叉熵損失。 |
|
連線主義時間分類損失。 |
|
負對數似然損失。 |
|
目標為泊松分佈時的負對數似然損失。 |
|
高斯負對數似然損失。 |
|
Kullback-Leibler 散度損失。 |
|
建立一個準則,用於衡量目標值與輸入機率之間的二元交叉熵。 |
|
此損失結合了 Sigmoid 層和 BCELoss,在一個類中。 |
|
建立一個標準,用於衡量輸入 、 和標籤(包含 1 或 -1)的 1D mini-batch 或 0D Tensors 之間的損失。 |
|
衡量輸入 Tensor 和標籤 Tensor (包含 1 或 -1)之間的損失。 |
|
建立一個標準,用於最佳化輸入 (一個 2D mini-batch Tensor)和輸出 (目標類別索引的 2D Tensor)之間的多類多分類合頁損失(基於邊距的損失)。 |
|
建立一個標準,當元素級絕對誤差小於 delta 時使用平方項,否則使用 delta 縮放的 L1 項。 |
|
建立一個標準,當元素級絕對誤差小於 beta 時使用平方項,否則使用 L1 項。 |
|
建立一個標準,用於最佳化輸入 Tensor 和目標 Tensor (包含 1 或 -1)之間的二分類邏輯損失。 |
|
建立一個標準,用於最佳化輸入 和大小為 的目標 之間的多標籤一對多最大熵損失。 |
|
建立一個標準,用於衡量輸入 Tensor , 和值為 1 或 -1 的標籤 Tensor 之間的損失。 |
|
建立一個標準,用於最佳化輸入 (一個 2D mini-batch Tensor)和輸出 (目標類別索引的 1D 感測器,)之間的多類分類合頁損失(基於邊距的損失)。 |
|
建立一個標準,用於衡量輸入 Tensor ,, 和大於 的邊距值之間的三元組損失。 |
|
建立一個標準,用於衡量輸入 Tensor ,,和 (分別代表錨點、正例和負例),以及一個非負實值函式(“距離函式”),用於計算錨點與正例之間的關係(“正距離”)和錨點與負例之間的關係(“負距離”)的三元組損失。 |
視覺層#
根據上取樣因子重新排列張量中的元素。 |
|
PixelShuffle 操作的逆操作。 |
|
對給定的多通道一維(時間)、二維(空間)或三維(體積)資料進行上取樣。 |
|
對由多個輸入通道組成的輸入訊號應用 2D 最近鄰上取樣。 |
|
對由多個輸入通道組成的輸入訊號應用 2D 雙線性上取樣。 |
DataParallel 層(多 GPU,分散式)#
在模組級別實現資料並行。 |
|
在模組級別實現基於 |
實用程式#
來自 torch.nn.utils 模組
用於裁剪引數梯度的實用函式。
對可迭代引數的梯度範數進行裁剪。 |
|
對可迭代引數的梯度範數進行裁剪。 |
|
將引數可迭代物件中的梯度裁剪到指定值。 |
|
計算張量可迭代物件的範數。 |
|
根據預計算的總範數和所需的 max 範數縮放參數可迭代物件中的梯度。 |
用於將模組引數展平成單個向量以及將單個向量恢復為模組引數的實用函式。
將引數可迭代物件展平成單個向量。 |
|
將一個向量的切片複製到引數的可迭代物件中。 |
用於將模組與 BatchNorm 模組融合的實用函式。
將卷積模組和 BatchNorm 模組融合為一個新的卷積模組。 |
|
將卷積模組引數和 BatchNorm 模組引數融合到新的卷積模組引數中。 |
|
將線性模組和 BatchNorm 模組融合為一個新的線性模組。 |
|
將線性模組引數和 BatchNorm 模組引數融合為新的線性模組引數。 |
用於轉換模組引數記憶體格式的實用函式。
將 |
|
將 |
用於從模組引數應用和移除權重歸一化的實用函式。
對給定模組中的引數應用權重歸一化。 |
|
從模組中移除權重歸一化重引數化。 |
|
對給定模組中的引數應用譜歸一化。 |
|
從模組中移除譜歸一化重引數化。 |
用於初始化模組引數的實用函式。
給定一個模組類物件和引數/關鍵字引數,在不初始化引數/緩衝區的情況下例項化模組。 |
用於剪枝模組引數的實用類和函式。
建立新剪枝技術的抽象基類。 |
|
包含一系列剪枝方法的容器,用於迭代剪枝。 |
|
實用的剪枝方法,不剪枝任何單元,但生成一個全為 1 的掩碼的剪枝引數化。 |
|
隨機剪枝張中(當前未剪枝的)單元。 |
|
透過將 L1 範數最低的單元歸零來剪枝張中(當前未剪枝的)單元。 |
|
隨機剪枝張中(當前未剪枝的)整個通道。 |
|
根據 L |
|
應用剪枝重引數化而不剪枝任何單元。 |
|
透過隨機移除(當前未剪枝的)單元來剪枝張。 |
|
透過移除 L1 範數最低的單元來剪枝張。 |
|
沿指定維度隨機移除通道來剪枝張。 |
|
沿指定維度移除 L |
|
透過應用指定的 |
|
透過應用 |
|
從模組中移除剪枝重引數化,並從前向鉤子中移除剪枝方法。 |
|
透過查詢剪枝前向鉤子來檢查模組是否被剪枝。 |
使用 torch.nn.utils.parameterize.register_parametrization() 中新引數化功能實現的引數化。
對矩陣或矩陣批應用正交或酉引數化。 |
|
對給定模組中的引數應用權重歸一化。 |
|
對給定模組中的引數應用譜歸一化。 |
用於對現有模組上的張量進行引數化的實用函式。注意,這些函式可以用於引數化給定的 Parameter 或 Buffer,給定一個將輸入空間對映到引數化空間的特定函式。它們不是將物件轉換為引數的引數化。有關如何實現自己的引數化的更多資訊,請參閱 引數化教程。
將引數化註冊到模組中的張量。 |
|
移除模組中張量上的引數化。 |
|
上下文管理器,它在透過 |
|
確定模組是否具有引數化。 |
|
將引數化及其引數從 |
|
返回應用引數化之前的模組型別,如果未應用引數化,則返回模組型別。 |
一個順序容器,用於儲存和管理已引數化的 |
用於以無狀態方式呼叫給定模組的實用函式。
透過用提供的引數和緩衝區替換模組引數和緩衝區來對模組執行函式式呼叫。 |
其他模組中的實用函式
儲存已打包序列的資料和 |
|
打包包含可變長度填充序列的 Tensor。 |
|
填充已打包的可變長度序列批。 |
|
使用 |
|
打包可變長度 Tensor 列表。 |
|
將 PackedSequence 解包為可變長度 Tensor 列表。 |
|
將填充的 Tensor 解填充為可變長度 Tensor 列表。 |
|
返回 |
|
返回 |
|
返回標準化的 factory kwargs 字典。 |
將連續的維度範圍展平成一個張量。 |
|
將張量的維度解展平成所需的形狀。 |
量化函式#
量化指的是執行計算和儲存張量時使用低於浮點精度的低位寬的技術。PyTorch 支援每張量和每通道非對稱線性量化。要了解更多關於如何在 PyTorch 中使用量化函式的資訊,請參考 量化 文件。