捷徑

torch.nn

這些是圖的基本建構模組

參數

一種被視為模組參數的張量。

未初始化參數

未初始化的參數。

未初始化緩衝區

未初始化的緩衝區。

容器

模組

所有神經網路模組的基類。

序列式

一個序列式容器。

模組列表

在列表中保存子模組。

模組字典

在字典中保存子模組。

參數列表

在列表中保存參數。

參數字典

在字典中保存參數。

模組的全局鉤子

register_module_forward_pre_hook

註冊一個所有模組通用的前向預處理鉤子。

register_module_forward_hook

為所有模組註冊一個全局前向鉤子。

register_module_backward_hook

註冊一個所有模組通用的反向鉤子。

register_module_full_backward_pre_hook

註冊一個所有模組通用的反向預處理鉤子。

register_module_full_backward_hook

註冊一個所有模組通用的反向鉤子。

register_module_buffer_registration_hook

註冊一個所有模組通用的緩衝區註冊鉤子。

register_module_module_registration_hook

註冊一個所有模組通用的模組註冊鉤子。

register_module_parameter_registration_hook

註冊一個所有模組通用的參數註冊鉤子。

卷積層

nn.Conv1d

對由多個輸入平面組成的輸入信號應用一維卷積。

nn.Conv2d

對由多個輸入平面組成的輸入信號應用二維卷積。

nn.Conv3d

對由多個輸入平面組成的輸入信號應用三維卷積。

nn.ConvTranspose1d

對由多個輸入平面組成的輸入影像應用一維轉置卷積運算子。

nn.ConvTranspose2d

對由多個輸入平面組成的輸入影像應用二維轉置卷積運算子。

nn.ConvTranspose3d

對由多個輸入平面組成的輸入影像應用三維轉置卷積運算子。

nn.LazyConv1d

具有 in_channels 參數延遲初始化的 torch.nn.Conv1d 模組。

nn.LazyConv2d

具有 in_channels 參數延遲初始化的 torch.nn.Conv2d 模組。

nn.LazyConv3d

具有 in_channels 參數延遲初始化的 torch.nn.Conv3d 模組。

nn.LazyConvTranspose1d

具有 in_channels 參數延遲初始化的 torch.nn.ConvTranspose1d 模組。

nn.LazyConvTranspose2d

具有 in_channels 參數延遲初始化的 torch.nn.ConvTranspose2d 模組。

nn.LazyConvTranspose3d

具有 in_channels 參數延遲初始化的 torch.nn.ConvTranspose3d 模組。

nn.Unfold

從批次輸入張量中提取滑動局部塊。

nn.Fold

將滑動局部塊陣列組合成一個大的包含張量。

池化層

nn.MaxPool1d

對由多個輸入平面組成的輸入信號應用一維最大池化。

nn.MaxPool2d

對由多個輸入平面組成的輸入信號應用二維最大池化。

nn.MaxPool3d

對由多個輸入平面組成的輸入信號應用三維最大池化。

nn.MaxUnpool1d

計算 MaxPool1d 的部分逆運算。

nn.MaxUnpool2d

計算 MaxPool2d 的部分逆運算。

nn.MaxUnpool3d

計算 MaxPool3d 的部分逆運算。

nn.AvgPool1d

對由多個輸入平面組成的輸入信號應用一維平均池化。

nn.AvgPool2d

對由多個輸入平面組成的輸入信號應用二維平均池化。

nn.AvgPool3d

對由多個輸入平面組成的輸入信號應用三維平均池化。

nn.FractionalMaxPool2d

對由多個輸入平面組成的輸入信號,套用二維分數最大池化。

nn.FractionalMaxPool3d

對由多個輸入平面組成的輸入信號,套用三維分數最大池化。

nn.LPPool1d

對由多個輸入平面組成的輸入信號,套用一維冪平均池化。

nn.LPPool2d

對由多個輸入平面組成的輸入信號,套用二維冪平均池化。

nn.LPPool3d

對由多個輸入平面組成的輸入信號,套用三維冪平均池化。

nn.AdaptiveMaxPool1d

對由多個輸入平面組成的輸入信號,套用一維自適應最大池化。

nn.AdaptiveMaxPool2d

對由多個輸入平面組成的輸入信號,套用二維自適應最大池化。

nn.AdaptiveMaxPool3d

對由多個輸入平面組成的輸入信號,套用三維自適應最大池化。

nn.AdaptiveAvgPool1d

對由多個輸入平面組成的輸入信號,套用一維自適應平均池化。

nn.AdaptiveAvgPool2d

對由多個輸入平面組成的輸入信號,套用二維自適應平均池化。

nn.AdaptiveAvgPool3d

對由多個輸入平面組成的輸入信號,套用三維自適應平均池化。

填充層

nn.ReflectionPad1d

使用輸入邊界的反射來填充輸入張量。

nn.ReflectionPad2d

使用輸入邊界的反射來填充輸入張量。

nn.ReflectionPad3d

使用輸入邊界的反射來填充輸入張量。

nn.ReplicationPad1d

使用輸入邊界的複製來填充輸入張量。

nn.ReplicationPad2d

使用輸入邊界的複製來填充輸入張量。

nn.ReplicationPad3d

使用輸入邊界的複製來填充輸入張量。

nn.ZeroPad1d

使用零來填充輸入張量邊界。

nn.ZeroPad2d

使用零來填充輸入張量邊界。

nn.ZeroPad3d

使用零來填充輸入張量邊界。

nn.ConstantPad1d

使用常數值來填充輸入張量邊界。

nn.ConstantPad2d

使用常數值來填充輸入張量邊界。

nn.ConstantPad3d

使用常數值來填充輸入張量邊界。

nn.CircularPad1d

使用輸入邊界的循環填充來填充輸入張量。

nn.CircularPad2d

使用輸入邊界的循環填充來填充輸入張量。

nn.CircularPad3d

使用輸入邊界的循環填充來填充輸入張量。

非線性激活函數(加權和,非線性)

nn.ELU

逐元素套用指數線性單元 (ELU) 函數。

nn.Hardshrink

逐元素套用硬縮減 (Hardshrink) 函數。

nn.Hardsigmoid

逐元素套用 Hardsigmoid 函數。

nn.Hardtanh

逐元素套用 HardTanh 函數。

nn.Hardswish

逐元素套用 Hardswish 函數。

nn.LeakyReLU

逐元素套用 LeakyReLU 函數。

nn.LogSigmoid

逐元素套用 Logsigmoid 函數。

nn.MultiheadAttention

允許模型共同關注來自不同表示子空間的信息。

nn.PReLU

逐元素套用 PReLU 函數。

nn.ReLU

逐元素套用整流線性單元函數。

nn.ReLU6

逐元素套用 ReLU6 函數。

nn.RReLU

逐元素套用隨機洩漏整流線性單元函數。

nn.SELU

逐元素套用 SELU 函數。

nn.CELU

逐元素套用 CELU 函數。

nn.GELU

套用高斯誤差線性單元函數。

nn.Sigmoid

逐元素套用 Sigmoid 函數。

nn.SiLU

逐元素套用 Sigmoid 線性單元 (SiLU) 函數。

nn.Mish

逐元素套用 Mish 函數。

nn.Softplus

逐元素套用 Softplus 函數。

nn.Softshrink

逐元素套用軟縮減函數。

nn.Softsign

逐元素套用 Softsign 函數。

nn.Tanh

逐元素套用雙曲正切 (Tanh) 函數。

nn.Tanhshrink

逐元素套用 Tanhshrink 函數。

nn.Threshold

對輸入張量的每個元素進行閾值處理。

nn.GLU

套用門控線性單元函數。

非線性激活函數(其他)

nn.Softmin

將 Softmin 函數套用於 n 維輸入張量。

nn.Softmax

將 Softmax 函數套用於 n 維輸入張量。

nn.Softmax2d

對每個空間位置的特徵套用 SoftMax。

nn.LogSoftmax

log(Softmax(x))\log(\text{Softmax}(x)) 函數套用於 n 維輸入張量。

nn.AdaptiveLogSoftmaxWithLoss

高效的 softmax 近似。

正規化層

nn.BatchNorm1d

對二維或三維輸入套用批次正規化。

nn.BatchNorm2d

對四維輸入套用批次正規化。

nn.BatchNorm3d

對五維輸入套用批次正規化。

nn.LazyBatchNorm1d

具有延遲初始化的 torch.nn.BatchNorm1d 模組。

nn.LazyBatchNorm2d

具有延遲初始化的 torch.nn.BatchNorm2d 模組。

nn.LazyBatchNorm3d

具有延遲初始化的 torch.nn.BatchNorm3d 模組。

nn.GroupNorm

對小批量輸入套用群組正規化。

nn.SyncBatchNorm

對 N 維輸入套用批次正規化。

nn.InstanceNorm1d

套用實例正規化。

nn.InstanceNorm2d

套用實例正規化。

nn.InstanceNorm3d

套用實例正規化。

nn.LazyInstanceNorm1d

具有延遲初始化 num_features 參數的 torch.nn.InstanceNorm1d 模組。

nn.LazyInstanceNorm2d

具有延遲初始化 num_features 參數的 torch.nn.InstanceNorm2d 模組。

nn.LazyInstanceNorm3d

具有延遲初始化 num_features 參數的 torch.nn.InstanceNorm3d 模組。

nn.LayerNorm

對小批量輸入套用層正規化。

nn.LocalResponseNorm

對輸入信號套用局部響應正規化。

nn.RMSNorm

對小批量輸入套用均方根層正規化。

循環層

nn.RNNBase

RNN 模組(RNN、LSTM、GRU)的基類。

nn.RNN

將具有 tanh\tanhReLU\text{ReLU} 非線性的多層 Elman RNN 套用於輸入序列。

nn.LSTM

將多層長短期記憶 (LSTM) RNN 套用於輸入序列。

nn.GRU

將多層門控循環單元 (GRU) RNN 套用於輸入序列。

nn.RNNCell

具有 tanh 或 ReLU 非線性的 Elman RNN 單元。

nn.LSTMCell

長短期記憶 (LSTM) 單元。

nn.GRUCell

門控循環單元 (GRU) 單元。

Transformer 層

nn.Transformer

Transformer 模型。

nn.TransformerEncoder

TransformerEncoder 是 N 個編碼器層的堆疊。

nn.TransformerDecoder

TransformerDecoder 是 N 個解碼器層的堆疊。

nn.TransformerEncoderLayer

TransformerEncoderLayer 由自注意力機制和前饋網路組成。

nn.TransformerDecoderLayer

TransformerDecoderLayer 由自注意力機制、多頭注意力機制和前饋網路組成。

線性層

nn.Identity

一個對參數不敏感的佔位符號恆等運算符。

nn.Linear

對輸入數據套用仿射線性變換:y=xAT+by = xA^T + b.

nn.Bilinear

對輸入數據套用雙線性變換:y=x1TAx2+by = x_1^T A x_2 + b.

nn.LazyLinear

一個 torch.nn.Linear 模組,其中 in_features 是推斷的。

Dropout 層

nn.Dropout

在訓練期間,以機率 p 隨機將輸入張量的一些元素歸零。

nn.Dropout1d

隨機將整個通道歸零。

nn.Dropout2d

隨機將整個通道歸零。

nn.Dropout3d

隨機將整個通道歸零。

nn.AlphaDropout

對輸入應用 Alpha Dropout。

nn.FeatureAlphaDropout

隨機遮蔽整個通道。

稀疏層

nn.Embedding

一個簡單的查找表,用於儲存固定字典和大小的嵌入。

nn.EmbeddingBag

計算嵌入「袋」的總和或平均值,無需實例化中間嵌入。

距離函數

nn.CosineSimilarity

傳回 x1x_1x2x_2 之間的餘弦相似度,沿著 dim 計算。

nn.PairwiseDistance

計算輸入向量之間或輸入矩陣的列之間的成對距離。

損失函數

nn.L1Loss

創建一個準則,用於測量輸入 xx 和目標 yy 中每個元素之間的平均絕對誤差 (MAE)。

nn.MSELoss

創建一個準則,用於測量輸入 xx 和目標 yy 中每個元素之間的均方誤差(平方 L2 範數)。

nn.CrossEntropyLoss

此準則計算輸入 logits 和目標之間的交叉熵損失。

nn.CTCLoss

連接主義時間分類損失。

nn.NLLLoss

負對數似然損失。

nn.PoissonNLLLoss

具有目標泊松分佈的負對數似然損失。

nn.GaussianNLLLoss

高斯負對數似然損失。

nn.KLDivLoss

Kullback-Leibler 散度損失。

nn.BCELoss

創建一個準則,用於測量目標和輸入機率之間的二元交叉熵

nn.BCEWithLogitsLoss

此損失在單一類別中結合了 Sigmoid 層和 BCELoss

nn.MarginRankingLoss

創建一個準則,用於測量給定輸入 x1x1x2x2(兩個一維迷你批次或零維 張量)和標籤一維迷你批次或零維 張量 yy(包含 1 或 -1)的損失。

nn.HingeEmbeddingLoss

測量給定輸入張量 xx 和標籤張量 yy(包含 1 或 -1)的損失。

nn.MultiLabelMarginLoss

創建一個準則,用於最佳化輸入 xx(一個二維迷你批次 張量)和輸出 yy(一個二維目標類別索引的 張量)之間的多類別多分類鉸鏈損失(基於邊緣的損失)。

nn.HuberLoss

創建一個準則,如果絕對元素誤差低於 delta,則使用平方項,否則使用 delta 調整的 L1 項。

nn.SmoothL1Loss

創建一個準則,如果絕對元素誤差低於 beta,則使用平方項,否則使用 L1 項。

nn.SoftMarginLoss

創建一個準則,用於最佳化輸入張量 xx 和目標張量 yy(包含 1 或 -1)之間的二元分類邏輯損失。

nn.MultiLabelSoftMarginLoss

創建一個準則,用於最佳化基於最大熵的多標籤一對多損失,在大小為 (N,C)(N, C) 的輸入 xx 和目標 yy 之間。

nn.CosineEmbeddingLoss

創建一個準則,用於測量給定輸入張量 x1x_1x2x_2張量 標籤 yy(值為 1 或 -1)的損失。

nn.MultiMarginLoss

創建一個準則,用於優化輸入 xx(一個二維迷你批次 Tensor)和輸出 yy(一個一維目標類別索引的張量,0yx.size(1)10 \leq y \leq \text{x.size}(1)-1)之間的多類別分類鉸鏈損失(基於邊緣的損失)。

nn.TripletMarginLoss

創建一個準則,用於測量給定輸入張量 x1x1x2x2x3x3 和邊緣值大於 00 的三元組損失。

nn.TripletMarginWithDistanceLoss

創建一個準則,用於測量給定輸入張量 aappnn(分別代表錨點、正例和負例)以及用於計算錨點和正例之間的關係(“正距離”)以及錨點和負例之間的關係(“負距離”)的非負實值函數(“距離函數”)的三元組損失。

視覺層

nn.PixelShuffle

根據放大因子重新排列張量中的元素。

nn.PixelUnshuffle

反轉 PixelShuffle 操作。

nn.Upsample

對給定的多通道一維(時間)、二維(空間)或三維(體積)數據進行上採樣。

nn.UpsamplingNearest2d

對由多個輸入通道組成的輸入信號應用二維最近鄰上採樣。

nn.UpsamplingBilinear2d

對由多個輸入通道組成的輸入信號應用二維雙線性上採樣。

混洗層

nn.ChannelShuffle

分割並重新排列張量中的通道。

DataParallel 層(多 GPU、分散式)

nn.DataParallel

在模組級別實作數據並行。

nn.parallel.DistributedDataParallel

在模組級別基於 torch.distributed 實作分散式數據並行。

工具

來自 torch.nn.utils 模組

用於裁剪參數梯度的工具函數。

clip_grad_norm_

裁剪可迭代參數的梯度範數。

clip_grad_norm

裁剪可迭代參數的梯度範數。

clip_grad_value_

將可迭代參數的梯度裁剪到指定值。

用於將模組參數扁平化和取消扁平化為單一向量的工具函數。

parameters_to_vector

將可迭代參數扁平化為單一向量。

vector_to_parameters

將向量的切片複製到可迭代參數中。

用於將模組與 BatchNorm 模組融合的工具函數。

fuse_conv_bn_eval

將卷積模組和 BatchNorm 模組融合為單個新的卷積模組。

fuse_conv_bn_weights

將卷積模組參數和 BatchNorm 模組參數融合為新的卷積模組參數。

fuse_linear_bn_eval

將線性模組和 BatchNorm 模組融合為單個新的線性模組。

fuse_linear_bn_weights

將線性模組參數和 BatchNorm 模組參數融合為新的線性模組參數。

用於轉換模組參數記憶體格式的工具函數。

convert_conv2d_weight_memory_format

nn.Conv2d.weightmemory_format 轉換為 memory_format

convert_conv3d_weight_memory_format

nn.Conv3d.weightmemory_format 轉換為 memory_format。轉換遞迴地應用於嵌套的 nn.Module,包括 module

用於應用和移除模組參數權重正規化的工具函數。

weight_norm

對給定模組中的參數應用權重正規化。

remove_weight_norm

從模組中移除權重正規化重新參數化。

spectral_norm

對給定模組中的參數應用譜正規化。

remove_spectral_norm

從模組中移除譜正規化重新參數化。

用於初始化模組參數的工具函數。

skip_init

給定一個模組類別物件和 args / kwargs,實例化模組而不初始化參數/緩衝區。

用於修剪模組參數的工具類別和函數。

prune.BasePruningMethod

用於創建新的修剪技術的抽象基類別。

prune.PruningContainer

容器,包含用於迭代修剪的修剪方法序列。

prune.Identity

實用修剪方法,不修剪任何單元,但使用全 1 掩碼生成修剪參數化。

prune.RandomUnstructured

隨機修剪張量中(當前未修剪的)單元。

prune.L1Unstructured

通過將 L1 範數最低的單元歸零來修剪張量中(當前未修剪的)單元。

prune.RandomStructured

隨機修剪張量中整個(當前未修剪的)通道。

prune.LnStructured

根據其 Ln 範數修剪張量中整個(當前未修剪的)通道。

prune.CustomFromMask

prune.identity

應用修剪重新參數化而不修剪任何單元。

prune.random_unstructured

通過移除隨機(當前未修剪的)單元來修剪張量。

prune.l1_unstructured

通過移除 L1 範數最低的單元來修剪張量。

prune.random_structured

通過沿指定維度移除隨機通道來修剪張量。

prune.ln_structured

通過沿指定維度移除 Ln 範數最低的通道來修剪張量。

prune.global_unstructured

通過應用指定的 pruning_method 全局修剪與 parameters 中所有參數相對應的張量。

prune.custom_from_mask

通過應用 mask 中預先計算的掩碼,修剪 module 中稱為 name 的參數對應的張量。

prune.remove

從模組中移除修剪重新參數化,並從前向鉤子中移除修剪方法。

prune.is_pruned

通過查找修剪預先鉤子來檢查模組是否被修剪。

使用 torch.nn.utils.parameterize.register_parametrization() 中的新參數化功能實現的參數化。

parametrizations.orthogonal

對矩陣或一批矩陣應用正交或酉參數化。

parametrizations.weight_norm

對給定模組中的參數應用權重正規化。

parametrizations.spectral_norm

對給定模組中的參數應用譜正規化。

用於在現有模組上參數化張量的工具函數。請注意,這些函數可用於在給定從輸入空間映射到參數化空間的特定函數的情況下,參數化給定的參數或緩衝區。它們不是將物件轉換為參數的參數化。有關如何實現自己的參數化的更多信息,請參閱 參數化教程

parametrize.register_parametrization

將參數化註冊到模組中的張量。

parametrize.remove_parametrizations

移除模組中張量上的參數化。

parametrize.cached

上下文管理器,用於在使用 register_parametrization() 註冊的參數化中啟用緩存系統。

parametrize.is_parametrized

確定模組是否具有參數化。

parametrize.ParametrizationList

一個順序容器,用於保存和管理參數化的 torch.nn.Module 的原始參數或緩衝區。

用於以無狀態方式調用給定模組的工具函數。

stateless.functional_call

通過將模組參數和緩衝區替換為提供的參數和緩衝區,在模組上執行函數調用。

其他模組中的工具函數

nn.utils.rnn.PackedSequence

保存打包序列的數據和 batch_sizes 列表。

nn.utils.rnn.pack_padded_sequence

打包包含變長填充序列的張量。

nn.utils.rnn.pad_packed_sequence

填充一批打包的變長序列。

nn.utils.rnn.pad_sequence

使用 padding_value 對可變長度張量列表進行填充。

nn.utils.rnn.pack_sequence

打包可變長度張量列表。

nn.utils.rnn.unpack_sequence

將 PackedSequence 解包成可變長度張量列表。

nn.utils.rnn.unpad_sequence

將填充後的張量解包成可變長度張量列表。

nn.Flatten

將連續的維度範圍展平成張量。

nn.Unflatten

展開張量維度,將其擴展為所需的形狀。

量化函數

量化是指以比浮點精度更低的位元寬度執行計算和儲存張量的技術。PyTorch 支援每張量和每通道非對稱線性量化。要進一步瞭解如何在 PyTorch 中使用量化函數,請參閱量化 文件。

惰性模組初始化

nn.modules.lazy.LazyModuleMixin

用於惰性初始化參數的模組的混合,也稱為「惰性模組」。

別名

以下是 torch.nn 中對應項的別名

nn.modules.normalization.RMSNorm

對小批量輸入套用均方根層正規化。

文件

存取 PyTorch 的完整開發者文件

檢視文件

教學課程

取得適合初學者和進階開發者的深入教學課程

檢視教學課程

資源

尋找開發資源並獲得問題解答

檢視資源