• 文件 >
  • torch.nn.functional
捷徑

torch.nn.functional

卷積函數

conv1d

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

conv2d

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

conv3d

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

conv_transpose1d

對由多個輸入平面組成的輸入訊號應用一維轉置卷積運算子,有時也稱為「反卷積」。

conv_transpose2d

對由多個輸入平面組成的輸入影像應用二維轉置卷積運算子,有時也稱為「反卷積」。

conv_transpose3d

對由多個輸入平面組成的輸入影像應用三維轉置卷積運算子,有時也稱為「反卷積」。

unfold

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

fold

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

池化函數

avg_pool1d

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

avg_pool2d

kH×kWkH \times kW 區域中,以步長 sH×sWsH \times sW 步驟應用二維平均池化運算。

avg_pool3d

kT×kH×kWkT \times kH \times kW 區域中,以步長 sT×sH×sWsT \times sH \times sW 步驟應用三維平均池化運算。

max_pool1d

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

max_pool2d

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

max_pool3d

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

max_unpool1d

計算 MaxPool1d 的部分反函數。

max_unpool2d

計算 MaxPool2d 的部分反函數。

max_unpool3d

計算 MaxPool3d 的部分反函數。

lp_pool1d

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

lp_pool2d

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

lp_pool3d

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

adaptive_max_pool1d

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

adaptive_max_pool2d

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

adaptive_max_pool3d

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

adaptive_avg_pool1d

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

adaptive_avg_pool2d

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

adaptive_avg_pool3d

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

fractional_max_pool2d

對由多個輸入平面組成的輸入信號,應用 2D 分數最大池化。

fractional_max_pool3d

對由多個輸入平面組成的輸入信號,應用 3D 分數最大池化。

注意力機制

torch.nn.attention.bias 模組包含設計用於 scaled_dot_product_attention 的注意力偏差。

scaled_dot_product_attention

使用可選的注意力遮罩(如果傳遞)計算查詢、鍵和值張量上的縮放點積注意力,並在指定大於 0.0 的機率時應用丟棄。

非線性激活函數

threshold

對輸入張量的每個元素應用閾值。

threshold_

threshold() 的就地版本。

relu

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

relu_

relu() 的就地版本。

hardtanh

逐元素應用 HardTanh 函數。

hardtanh_

hardtanh() 的就地版本。

hardswish

逐元素應用 hardswish 函數。

relu6

逐元素應用函數 ReLU6(x)=min(max(0,x),6)\text{ReLU6}(x) = \min(\max(0,x), 6)

elu

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

elu_

elu() 的就地版本。

selu

逐元素應用 SELU(x)=scale(max(0,x)+min(0,α(exp(x)1)))\text{SELU}(x) = scale * (\max(0,x) + \min(0, \alpha * (\exp(x) - 1))),其中 α=1.6732632423543772848170429916717\alpha=1.6732632423543772848170429916717scale=1.0507009873554804934193349852946scale=1.0507009873554804934193349852946

celu

逐元素應用 CELU(x)=max(0,x)+min(0,α(exp(x/α)1))\text{CELU}(x) = \max(0,x) + \min(0, \alpha * (\exp(x/\alpha) - 1))

leaky_relu

逐元素應用 LeakyReLU(x)=max(0,x)+negative_slopemin(0,x)\text{LeakyReLU}(x) = \max(0, x) + \text{negative\_slope} * \min(0, x)

leaky_relu_

leaky_relu() 的就地版本。

prelu

逐元素應用函數 PReLU(x)=max(0,x)+weightmin(0,x)\text{PReLU}(x) = \max(0,x) + \text{weight} * \min(0,x),其中 weight 是可學習的參數。

rrelu

隨機 leaky ReLU。

rrelu_

rrelu() 的就地版本。

glu

閘控線性單元。

gelu

當 approximate 參數為「none」時,它會將函數 GELU(x)=xΦ(x)\text{GELU}(x) = x * \Phi(x) 以元素方式應用。

對數 sigmoid 函數

以元素方式應用 LogSigmoid(xi)=log(11+exp(xi))\text{LogSigmoid}(x_i) = \log \left(\frac{1}{1 + \exp(-x_i)}\right)

硬收縮函數

以元素方式應用硬收縮函數

雙曲正切收縮函數

以元素方式應用 Tanhshrink(x)=xTanh(x)\text{Tanhshrink}(x) = x - \text{Tanh}(x)

軟符號函數

以元素方式應用函數 SoftSign(x)=x1+x\text{SoftSign}(x) = \frac{x}{1 + |x|}

軟加函數

以元素方式應用函數 Softplus(x)=1βlog(1+exp(βx))\text{Softplus}(x) = \frac{1}{\beta} * \log(1 + \exp(\beta * x)).

軟最小值函數

應用軟最小值函數。

軟最大值函數

應用軟最大值函數。

軟收縮函數

以元素方式應用軟收縮函數

Gumbel-Softmax 函數

從 Gumbel-Softmax 分佈(連結 1 連結 2)中取樣,並可選擇離散化。

對數軟最大值函數

先應用軟最大值函數,然後再應用對數函數。

雙曲正切函數

以元素方式應用 Tanh(x)=tanh(x)=exp(x)exp(x)exp(x)+exp(x)\text{Tanh}(x) = \tanh(x) = \frac{\exp(x) - \exp(-x)}{\exp(x) + \exp(-x)}

sigmoid 函數

逐元素應用函數 Sigmoid(x)=11+exp(x)\text{Sigmoid}(x) = \frac{1}{1 + \exp(-x)}

hardsigmoid

逐元素應用 Hardsigmoid 函數。

silu

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

mish

逐元素應用 Mish 函數。

batch_norm

對一批資料中的每個通道應用批次正規化。

group_norm

對最後特定數量的維度應用群組正規化。

instance_norm

對批次中每個資料樣本的每個通道分別應用實例正規化。

layer_norm

對最後特定數量的維度應用層正規化。

local_response_norm

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

rms_norm

應用均方根層正規化。

normalize

對指定維度的輸入執行 LpL_p 正規化。

線性函數

linear

對輸入資料應用線性轉換:y=xAT+by = xA^T + b.

bilinear

對輸入資料應用雙線性轉換:y=x1TAx2+by = x_1^T A x_2 + b.

Dropout 函數

dropout

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

alpha_dropout

對輸入應用 alpha dropout。

feature_alpha_dropout

隨機遮蔽整個通道(通道是一個特徵圖)。

dropout1d

隨機將整個通道歸零(通道是一個一維特徵圖)。

dropout2d

隨機將整個通道歸零(通道是一個二維特徵圖)。

dropout3d

隨機將整個通道歸零(通道是一個三維特徵圖)。

稀疏函數

embedding

產生一個簡單的查詢表,用於在固定字典和大小中查詢嵌入。

embedding_bag

計算嵌入的 的總和、平均值或最大值。

one_hot

採用形狀為 (*) 的索引值的 LongTensor,並返回形狀為 (*, num_classes) 的張量,該張量除最後一個維度的索引與輸入張量的相應值匹配的位置(此處將為 1)外,其餘位置均為零。

距離函數

pairwise_distance

如需詳細資訊,請參閱 torch.nn.PairwiseDistance

cosine_similarity

返回沿著 dim 計算的 x1x2 之間的餘弦相似度。

pdist

計算輸入中每對行向量之間的 p-範數距離。

損失函數

binary_cross_entropy

測量目標機率和輸入機率之間的二元交叉熵。

binary_cross_entropy_with_logits

計算目標邏輯值和輸入邏輯值之間的二元交叉熵。

poisson_nll_loss

泊松負對數似然損失。

cosine_embedding_loss

如需詳細資訊,請參閱 CosineEmbeddingLoss

cross_entropy

計算輸入邏輯值和目標之間的交叉熵損失。

ctc_loss

應用連接主義時間分類損失。

gaussian_nll_loss

高斯負對數似然損失。

hinge_embedding_loss

如需詳細資訊,請參閱 HingeEmbeddingLoss

kl_div

計算 KL 散度損失。

l1_loss

採用逐元素絕對值差的平均值的函數。

mse_loss

測量逐元素均方誤差。

margin_ranking_loss

如需詳細資訊,請參閱 MarginRankingLoss

multilabel_margin_loss

如需詳細資訊,請參閱 MultiLabelMarginLoss

multilabel_soft_margin_loss

如需詳細資訊,請參閱 MultiLabelSoftMarginLoss

multi_margin_loss

如需詳細資訊,請參閱 MultiMarginLoss

nll_loss

計算負對數似然損失。

huber_loss

計算 Huber 損失。

smooth_l1_loss

計算平滑 L1 損失。

soft_margin_loss

如需詳細資訊,請參閱 SoftMarginLoss

triplet_margin_loss

計算給定輸入張量和大於 0 的邊距之間的三元組損失。

triplet_margin_with_distance_loss

使用自訂距離函數計算輸入張量的三元組邊距損失。

視覺函數

pixel_shuffle

重新排列形狀為 (,C×r2,H,W)(*, C \times r^2, H, W) 的張量中的元素,使其成為形狀為 (,C,H×r,W×r)(*, C, H \times r, W \times r) 的張量,其中 r 是 upscale_factor

pixel_unshuffle

透過重新排列形狀為 (,C,H×r,W×r)(*, C, H \times r, W \times r) 的張量中的元素,將 PixelShuffle 操作反轉為形狀為 (,C×r2,H,W)(*, C \times r^2, H, W) 的張量,其中 r 是 downscale_factor

pad

填充張量。

interpolate

對輸入進行縮小/放大取樣。

upsample

對輸入進行放大取樣。

upsample_nearest

使用最近鄰居的像素值對輸入進行放大取樣。

upsample_bilinear

使用雙線性放大取樣對輸入進行放大取樣。

grid_sample

計算網格取樣。

affine_grid

給定一批仿射矩陣 theta,生成 2D 或 3D 流場(取樣網格)。

DataParallel 函數(多 GPU、分散式)

data_parallel

torch.nn.parallel.data_parallel

在 device_ids 中指定的 GPU 上並行評估 module(input)。

文件

取得 PyTorch 的完整開發人員文件

查看文件

教學課程

取得適用於初學者和進階開發人員的深入教學課程

查看教學課程

資源

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

查看資源