評價此頁

torch.nn.functional#

建立時間: 2019年6月11日 | 最後更新時間: 2024年3月25日

卷積函式#

conv1d

對由多個輸入平面組成的輸入訊號進行1D卷積操作。

conv2d

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

conv3d

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

conv_transpose1d

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

conv_transpose2d

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

conv_transpose3d

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

unfold

從批次輸入張量中提取滑動區域性塊。

fold

將一系列滑動區域性塊組合成一個大的包含張量。

池化函式#

avg_pool1d

對由多個輸入平面組成的輸入訊號進行1D平均池化操作。

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

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

max_pool2d

在由多個輸入平面組成的輸入訊號上應用 2D 最大池化。

max_pool3d

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

max_unpool1d

計算 MaxPool1d 的部分逆運算。

max_unpool2d

計算 MaxPool2d 的部分逆運算。

max_unpool3d

計算 MaxPool3d 的部分逆運算。

lp_pool1d

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

lp_pool2d

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

lp_pool3d

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

adaptive_max_pool1d

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

adaptive_max_pool2d

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

adaptive_max_pool3d

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

adaptive_avg_pool1d

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

adaptive_avg_pool2d

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

adaptive_avg_pool3d

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

fractional_max_pool2d

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

fractional_max_pool3d

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

注意力機制#

torch.nn.attention.bias 模組包含旨在與 scaled_dot_product_attention 一起使用的 attention_biases。

scaled_dot_product_attention

scaled_dot_product_attention(query, key, value, attn_mask=None, dropout_p=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

隨機 LeakyReLU。

rrelu_

rrelu() 的原地版本。

glu

門控線性單元。

gelu

當 approximate 引數為 'none' 時,它會逐元素應用 GELU(x)=xΦ(x)\text{GELU}(x) = x * \Phi(x) 函式。

logsigmoid

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

hardshrink

逐元素應用 hard shrinkage 函式。

tanhshrink

逐元素應用 Tanhshrink(x)=xTanh(x)\text{Tanhshrink}(x) = x - \text{Tanh}(x) 函式。

softsign

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

softplus

逐元素應用 Softplus(x)=1βlog(1+exp(βx))\text{Softplus}(x) = \frac{1}{\beta} * \log(1 + \exp(\beta * x)) 函式。

softmin

應用 softmin 函式。

softmax

應用 softmax 函式。

softshrink

逐元素應用 soft shrinkage 函式。

gumbel_softmax

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

log_softmax

應用 softmax 然後取對數。

tanh

逐元素應用 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 Linear Unit (SiLU) 函式。

mish

逐元素應用 Mish 函式。

batch_norm

跨批次資料為每個通道應用 Batch Normalization。

group_norm

為最後若干維應用 Group Normalization。

instance_norm

在批次中的每個資料樣本內獨立為每個通道應用 Instance Normalization。

layer_norm

為最後若干維應用 Layer Normalization。

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

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

poisson_nll_loss

計算泊松負對數似然損失。

cosine_embedding_loss

計算餘弦嵌入損失。

cross_entropy

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

ctc_loss

計算連線主義時間分類(CTC)損失。

gaussian_nll_loss

計算高斯負對數似然損失。

hinge_embedding_loss

計算 hinge 嵌入損失。

kl_div

計算 KL 散度損失。

l1_loss

計算 L1 損失,可選加權。

mse_loss

計算逐元素均方誤差,可選加權。

margin_ranking_loss

計算間隔排名損失。

multilabel_margin_loss

計算多標籤間隔損失。

multilabel_soft_margin_loss

計算多標籤軟間隔損失。

multi_margin_loss

計算多類別間隔損失,可選加權。

nll_loss

計算負對數似然損失。

huber_loss

計算 Huber 損失,可選加權。

smooth_l1_loss

計算 Smooth L1 損失。

soft_margin_loss

計算軟間隔損失。

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

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

pad

填充張量。

interpolate

下采樣/上取樣輸入。

upsample

上取樣輸入。

upsample_nearest

使用最近鄰畫素值上取樣輸入。

upsample_bilinear

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

grid_sample

計算 grid sample。

affine_grid

給定仿射矩陣 theta 的批次,生成二維或三維流場(取樣網格)。

DataParallel 函式(多 GPU,分散式)#

data_parallel#

torch.nn.parallel.data_parallel

device_ids 中指定的 GPU 上並行評估模組(輸入)。