torch.nn¶
它們是構建圖的基本模組
torch.nn
一種不應被視為模型引數的 Tensor。 |
|
一種應被視為模組引數的 Tensor。 |
|
一個未初始化的引數。 |
|
一個未初始化的 buffer。 |
容器¶
所有神經網路模組的基類。 |
|
一個序列容器。 |
|
以列表形式儲存子模組。 |
|
以字典形式儲存子模組。 |
|
以列表形式儲存引數。 |
|
以字典形式儲存引數。 |
模組的全域性鉤子
註冊一個適用於所有模組的前向預鉤子。 |
|
註冊一個適用於所有模組的全域性前向鉤子。 |
|
註冊一個適用於所有模組的後向鉤子。 |
|
註冊一個適用於所有模組的完整後向預鉤子。 |
|
註冊一個適用於所有模組的後向鉤子。 |
|
註冊一個適用於所有模組的 buffer 註冊鉤子。 |
|
註冊一個適用於所有模組的 module 註冊鉤子。 |
|
註冊一個適用於所有模組的 parameter 註冊鉤子。 |
卷積層¶
對由若干輸入平面組成的輸入訊號應用 1D 卷積。 |
|
對由若干輸入平面組成的輸入訊號應用 2D 卷積。 |
|
對由若干輸入平面組成的輸入訊號應用 3D 卷積。 |
|
對由若干輸入平面組成的輸入影像應用 1D 轉置卷積運算元。 |
|
對由若干輸入平面組成的輸入影像應用 2D 轉置卷積運算元。 |
|
對由若干輸入平面組成的輸入影像應用 3D 轉置卷積運算元。 |
|
一個 |
|
一個 |
|
一個 |
|
一個 |
|
一個 |
|
一個 |
|
從批次輸入張量中提取滑動的區域性塊。 |
|
將滑動的區域性塊陣列組合成一個大的包含張量。 |
池化層¶
對由若干輸入平面組成的輸入訊號應用 1D 最大池化。 |
|
對由若干輸入平面組成的輸入訊號應用 2D 最大池化。 |
|
對由若干輸入平面組成的輸入訊號應用 3D 最大池化。 |
|
計算 |
|
計算 |
|
計算 |
|
對由若干輸入平面組成的輸入訊號應用 1D 平均池化。 |
|
對由若干輸入平面組成的輸入訊號應用 2D 平均池化。 |
|
對由若干輸入平面組成的輸入訊號應用 3D 平均池化。 |
|
對由若干輸入平面組成的輸入訊號應用 2D 分數最大池化。 |
|
對由若干輸入平面組成的輸入訊號應用 3D 分數最大池化。 |
|
對由若干輸入平面組成的輸入訊號應用 1D 冪平均池化。 |
|
對由若干輸入平面組成的輸入訊號應用 2D 冪平均池化。 |
|
對由若干輸入平面組成的輸入訊號應用 3D 冪平均池化。 |
|
對由若干輸入平面組成的輸入訊號應用 1D 自適應最大池化。 |
|
對由若干輸入平面組成的輸入訊號應用 2D 自適應最大池化。 |
|
對由若干輸入平面組成的輸入訊號應用 3D 自適應最大池化。 |
|
對由若干輸入平面組成的輸入訊號應用 1D 自適應平均池化。 |
|
對由若干輸入平面組成的輸入訊號應用 2D 自適應平均池化。 |
|
對由若干輸入平面組成的輸入訊號應用 3D 自適應平均池化。 |
填充層¶
使用輸入邊界的反射來填充輸入張量。 |
|
使用輸入邊界的反射來填充輸入張量。 |
|
使用輸入邊界的反射來填充輸入張量。 |
|
使用輸入邊界的複製來填充輸入張量。 |
|
使用輸入邊界的複製來填充輸入張量。 |
|
使用輸入邊界的複製來填充輸入張量。 |
|
使用零填充輸入張量的邊界。 |
|
使用零填充輸入張量的邊界。 |
|
使用零填充輸入張量的邊界。 |
|
使用常量值填充輸入張量的邊界。 |
|
使用常量值填充輸入張量的邊界。 |
|
使用常量值填充輸入張量的邊界。 |
|
使用輸入邊界的迴圈填充來填充輸入張量。 |
|
使用輸入邊界的迴圈填充來填充輸入張量。 |
|
使用輸入邊界的迴圈填充來填充輸入張量。 |
非線性啟用函式 (加權和相關)¶
逐元素應用 Exponential Linear Unit (ELU) 函式。 |
|
逐元素應用 Hard Shrinkage (Hardshrink) 函式。 |
|
逐元素應用 Hardsigmoid 函式。 |
|
逐元素應用 HardTanh 函式。 |
|
逐元素應用 Hardswish 函式。 |
|
逐元素應用 LeakyReLU 函式。 |
|
逐元素應用 Logsigmoid 函式。 |
|
允許模型共同關注來自不同表示子空間的資訊。 |
|
逐元素應用 PReLU 函式。 |
|
逐元素應用整流線性單元函式。 |
|
逐元素應用 ReLU6 函式。 |
|
逐元素應用隨機 leaky 整流線性單元函式。 |
|
逐元素應用 SELU 函式。 |
|
逐元素應用 CELU 函式。 |
|
應用高斯誤差線性單元函式。 |
|
逐元素應用 Sigmoid 函式。 |
|
逐元素應用 Sigmoid Linear Unit (SiLU) 函式。 |
|
逐元素應用 Mish 函式。 |
|
逐元素應用 Softplus 函式。 |
|
逐元素應用 soft shrinkage 函式。 |
|
逐元素應用 Softsign 函式。 |
|
逐元素應用 Hyperbolic Tangent (Tanh) 函式。 |
|
逐元素應用 Tanhshrink 函式。 |
|
對輸入 Tensor 的每個元素進行閾值處理。 |
|
應用門控線性單元函式。 |
非線性啟用函式 (其他)¶
對 n 維輸入 Tensor 應用 Softmin 函式。 |
|
對 n 維輸入 Tensor 應用 Softmax 函式。 |
|
對每個空間位置的特徵應用 SoftMax。 |
|
對 n 維輸入 Tensor 應用 函式。 |
|
高效的 softmax 近似。 |
歸一化層¶
對 2D 或 3D 輸入應用批歸一化。 |
|
對 4D 輸入應用批歸一化。 |
|
對 5D 輸入應用批歸一化。 |
|
一個支援延遲初始化的 |
|
一個支援延遲初始化的 |
|
一個支援延遲初始化的 |
|
對 mini-batch 輸入應用組歸一化。 |
|
對 N 維輸入應用批歸一化。 |
|
應用例項歸一化。 |
|
應用例項歸一化。 |
|
應用例項歸一化。 |
|
一個 |
|
一個 |
|
一個 |
|
對 mini-batch 輸入應用層歸一化。 |
|
對輸入訊號應用區域性響應歸一化。 |
|
對 mini-batch 輸入應用均方根層歸一化。 |
迴圈層¶
RNN 模組 (RNN, LSTM, GRU) 的基類。 |
|
對輸入序列應用帶有 或 非線性的多層 Elman RNN。 |
|
對輸入序列應用多層長短期記憶 (LSTM) RNN。 |
|
對輸入序列應用多層門控迴圈單元 (GRU) RNN。 |
|
一個帶有 tanh 或 ReLU 非線性的 Elman RNN cell。 |
|
一個長短期記憶 (LSTM) cell。 |
|
一個門控迴圈單元 (GRU) cell。 |
Transformer 層¶
一個 transformer 模型。 |
|
TransformerEncoder 是 N 個編碼器層的堆疊。 |
|
TransformerDecoder 是 N 個解碼器層的堆疊。 |
|
TransformerEncoderLayer 由自注意力和前饋網路組成。 |
|
TransformerDecoderLayer 由自注意力、多頭注意力和前饋網路組成。 |
線性層¶
一個佔位符恆等運算元,對引數不敏感。 |
|
對輸入資料應用仿射線性變換:。 |
|
對輸入資料應用雙線性變換:。 |
|
一個 |
Dropout 層¶
在訓練期間,以機率 |
|
隨機將整個通道歸零。 |
|
隨機將整個通道歸零。 |
|
隨機將整個通道歸零。 |
|
對輸入應用 Alpha Dropout。 |
|
隨機遮蔽整個通道。 |
損失函式¶
建立一個準則,用於衡量輸入 和目標 中每個元素之間的平均絕對誤差 (MAE)。 |
|
建立一個準則,用於衡量輸入 和目標 中每個元素之間的均方誤差(平方 L2 範數)。 |
|
此準則計算輸入 logit 和目標之間的交叉熵損失。 |
|
連線主義時間分類損失。 |
|
負對數似然損失。 |
|
目標服從泊松分佈的負對數似然損失。 |
|
高斯負對數似然損失。 |
|
Kullback-Leibler 散度損失。 |
|
建立一個準則,用於衡量目標和輸入機率之間的二元交叉熵。 |
|
此損失函式在一個類中結合了 Sigmoid 層和 BCELoss。 |
|
建立一個準則,用於衡量給定輸入 、$x2$(兩個 1D 小批次或 0D 張量)和標籤 (一個 1D 小批次或 0D 張量,包含 1 或 -1)時的損失。 |
|
衡量給定輸入張量 和標籤張量 (包含 1 或 -1)時的損失。 |
|
建立一個準則,用於最佳化輸入 (一個 2D 小批次 張量)和輸出 (一個 2D 目標類別索引 張量)之間的多類別多分類鉸鏈損失(基於間隔的損失)。 |
|
建立一個準則,當逐元素的絕對誤差小於 delta 時使用平方項,否則使用 delta 放大的 L1 項。 |
|
建立一個準則,當逐元素的絕對誤差小於 beta 時使用平方項,否則使用 L1 項。 |
|
建立一個準則,用於最佳化輸入張量 和目標張量 (包含 1 或 -1)之間的兩類別分類邏輯損失。 |
|
建立一個準則,用於最佳化基於最大熵的多標籤一對多損失,該損失衡量輸入 和大小為 的目標 之間的差異。 |
|
建立一個準則,用於衡量給定輸入張量 、$x_2$ 和值為 1 或 -1 的 張量 標籤 時的損失。 |
|
建立一個準則,用於最佳化輸入 (一個 2D 小批次 張量)和輸出 (一個 1D 目標類別索引張量,$0 \leq y \leq \text{x.size}(1)-1$)之間的多類別分類鉸鏈損失(基於間隔的損失)。 |
|
建立一個準則,用於衡量給定輸入張量 、$x2$、$x3$ 和一個大於 $0$ 的間隔(margin)時的三元組損失。 |
|
建立一個準則,用於衡量給定輸入張量 、$p$ 和 (分別代表錨點、正例和負例)以及一個非負實值函式(“距離函式”)時的三元組損失,該函式用於計算錨點與正例之間的關係(“正距離”)以及錨點與負例之間的關係(“負距離”)。 |
視覺層¶
根據上取樣因子重新排列張量中的元素。 |
|
反轉 PixelShuffle 操作。 |
|
對給定的多通道 1D(時間)、2D(空間)或 3D(體積)資料進行上取樣。 |
|
對由多個輸入通道組成的輸入訊號應用 2D 最近鄰上取樣。 |
|
對由多個輸入通道組成的輸入訊號應用 2D 雙線性上取樣。 |
資料並行層(多 GPU,分散式)¶
在模組級別實現資料並行。 |
|
在模組級別基於 |
工具函式¶
來自 torch.nn.utils 模組
用於裁剪引數梯度的工具函式。
裁剪可迭代引數的梯度範數。 |
|
裁剪可迭代引數的梯度範數。 |
|
按指定值裁剪可迭代引數的梯度。 |
|
計算可迭代張量的範數。 |
|
根據預計算的總範數和期望的最大範數,縮放可迭代引數的梯度。 |
用於將模組引數展平為單個向量以及從單個向量還原的工具函式。
將可迭代引數展平為單個向量。 |
|
將向量的切片複製到可迭代引數中。 |
用於融合 Module 和 BatchNorm 模組的工具函式。
將卷積模組和 BatchNorm 模組融合成一個新的卷積模組。 |
|
將卷積模組引數和 BatchNorm 模組引數融合成新的卷積模組引數。 |
|
將線性模組和 BatchNorm 模組融合成一個新的線性模組。 |
|
將線性模組引數和 BatchNorm 模組引數融合成新的線性模組引數。 |
用於轉換模組引數記憶體格式的工具函式。
將 |
|
將 |
用於對模組引數應用和移除權重歸一化的工具函式。
對給定模組中的引數應用權重歸一化。 |
|
從模組中移除權重歸一化重引數化。 |
|
對給定模組中的引數應用譜歸一化。 |
|
從模組中移除譜歸一化重引數化。 |
用於初始化模組引數的工具函式。
給定模組類物件和 args / kwargs,例項化模組而不初始化引數 / 緩衝區。 |
用於修剪模組引數的工具類和函式。
建立新修剪技術的抽象基類。 |
|
包含一系列修剪方法用於迭代修剪的容器。 |
|
不修剪任何單元但生成帶全 1 掩碼的修剪重引數化的實用修剪方法。 |
|
隨機修剪張量中(當前未修剪的)單元。 |
|
透過將 L1 範數最低的單元歸零來修剪張量中(當前未修剪的)單元。 |
|
隨機修剪張量中整個(當前未修剪的)通道。 |
|
根據 L |
|
應用修剪重引數化而不修剪任何單元。 |
|
透過移除隨機的(當前未修剪的)單元來修剪張量。 |
|
透過移除 L1 範數最低的單元來修剪張量。 |
|
沿指定維度移除隨機通道來修剪張量。 |
|
沿指定維度移除 L |
|
透過應用指定的 |
|
透過應用 |
|
從模組中移除修剪重引數化,並從前向鉤子中移除修剪方法。 |
|
透過查詢修剪前置鉤子檢查模組是否已修剪。 |
使用 torch.nn.utils.parameterize.register_parametrization() 中的新引數化功能實現的引數化(Parametrizations)。
對矩陣或一批矩陣應用正交或酉引數化。 |
|
對給定模組中的引數應用權重歸一化。 |
|
對給定模組中的引數應用譜歸一化。 |
用於對現有模組中的張量進行引數化的工具函式。請注意,這些函式可用於根據一個特定的函式對給定引數或緩衝區進行引數化,該函式將輸入空間對映到引數化空間。它們並不是將物件轉換為引數的引數化。有關如何實現您自己的引數化的更多資訊,請參閱引數化教程。
在模組中向張量註冊引數化。 |
|
移除模組中張量上的引數化。 |
|
上下文管理器,可在使用 |
|
確定模組是否具有引數化。 |
一個序列容器,用於儲存和管理引數化 |
用於以無狀態方式呼叫給定模組的工具函式。
透過將模組引數和緩衝區替換為提供的引數和緩衝區,對模組執行函式式呼叫。 |
其他模組中的工具函式
儲存打包序列的資料和 |
|
打包包含可變長度填充序列的張量。 |
|
填充打包的可變長度序列批次。 |
|
使用 |
|
打包可變長度張量列表。 |
|
將 PackedSequence 解包為可變長度張量列表。 |
|
將填充張量去除填充為可變長度張量列表。 |
將連續的維度範圍展平為一個張量。 |
|
還原張量維度,將其擴充套件到所需的形狀。 |