• 文档 >
  • torch.nn.functional
快捷键

torch.nn.functional

卷积函数

conv1d

对由多个输入平面组成的输入信号应用 1D 卷积。

conv2d

对由多个输入平面组成的输入图像应用 2D 卷积。

conv3d

对由多个输入平面组成的输入图像应用 3D 卷积。

conv_transpose1d

对由多个输入平面组成的输入信号应用 1D 转置卷积算子,有时也称为“反卷积”。

conv_transpose2d

对由多个输入平面组成的输入图像应用 2D 转置卷积算子,有时也称为“反卷积”。

conv_transpose3d

对由多个输入平面组成的输入图像应用 3D 转置卷积算子,有时也称为“反卷积”

unfold

从批处理的输入张量中提取滑动局部块。

fold

将一系列滑动局部块组合成一个大型包含张量。

池化函数

avg_pool1d

对由多个输入平面组成的输入信号应用 1D 平均池化。

avg_pool2d

kH×kWkH \times kW 区域通过步长 sH×sWsH \times sW 步应用 2D 平均池化操作。

avg_pool3d

kT×kH×kWkT \times kH \times kW 区域通过步长 sT×sH×sWsT \times sH \times sW 步应用 3D 平均池化操作。

max_pool1d

对由多个输入平面组成的输入信号应用 1D 最大池化。

max_pool2d

对由多个输入平面组成的输入信号应用 2D 最大池化。

max_pool3d

对由多个输入平面组成的输入信号应用 3D 最大池化。

max_unpool1d

计算部分逆元 MaxPool1d

max_unpool2d

计算部分逆元 MaxPool2d

max_unpool3d

计算部分逆元 MaxPool3d

lp_pool1d

对由多个输入平面组成的输入信号应用 1D 功率平均池化。

lp_pool2d

对由多个输入平面组成的输入信号应用 2D 功率平均池化。

lp_pool3d

对由多个输入平面组成的输入信号应用 3D 功率平均池化。

adaptive_max_pool1d

对由多个输入平面组成的输入信号应用 1D 自适应最大池化。

adaptive_max_pool2d

对由多个输入平面组成的输入信号应用 2D 自适应最大池化。

adaptive_max_pool3d

对由多个输入平面组成的输入信号应用 3D 自适应最大池化。

adaptive_avg_pool1d

对由多个输入平面组成的输入信号应用 1D 自适应平均池化。

adaptive_avg_pool2d

对由多个输入平面组成的输入信号应用 2D 自适应平均池化。

adaptive_avg_pool3d

对由多个输入平面组成的输入信号应用 3D 自适应平均池化。

fractional_max_pool2d

对由多个输入平面组成的输入信号应用 2D 分数最大池化。

fractional_max_pool3d

对由多个输入平面组成的输入信号应用 3D 分数最大池化。

注意力机制

The 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

将阈值应用于输入 Tensor 的每个元素。

threshold_

现场版本 threshold()

relu

元素级应用修正线性单元函数。

relu_

现场版本 relu()

hardtanh

元素级应用 HardTanh 函数。

hardtanh_

hardtanh() 的就地版本。

hardswish

应用逐元素硬 swish 函数。

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) 应用到元素级别,其中权重是一个可学习的参数。

rrelu

随机化漏斗型 ReLU。

rrelu_

rrelu() 的就地版本。

glu

门控线性单元。

gelu

当近似参数为 '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

逐元素应用硬收缩函数。

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

应用软最大函数。

softmax

应用 softmax 函数。

softshrink

元素级应用软收缩函数。

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 线性单元(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

随机将整个通道置为零(通道是一个 1D 特征图)。

dropout2d

随机将整个通道置零(通道是一个二维特征图)。

dropout3d

随机将整个通道置零(通道是一个三维特征图)。

稀疏函数 ¶

embedding

生成一个简单的查找表,用于在固定字典和大小中查找嵌入。

embedding_bag

计算嵌入包的总和、平均值或最大值。

one_hot

接受形状为 (*) 的 LongTensor,并返回形状为 (*, num_classes) 的张量,其中除最后一个维度的索引与输入张量的对应值匹配的地方为 1,其他地方为 0。

距离函数

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

详细内容请见 CosineEmbeddingLoss

cross_entropy

计算输入 logits 与目标之间的交叉熵损失。

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) 的张量元素重新排列为形状为 (,C×r2,H,W)(*, C \times r^2, H, W) 的张量来反转 PixelShuffle 操作,其中 r 是 downscale_factor

pad

填充张量。

interpolate

对输入进行下/上采样。

upsample

上采样输入。

upsample_nearest

使用最近邻像素值对输入进行上采样。

upsample_bilinear

使用双线性上采样对输入进行上采样。

grid_sample

计算网格样本。

affine_grid

根据一批仿射矩阵生成 2D 或 3D 流场(采样网格) theta

DataParallel 函数(多 GPU、分布式)¶

data_parallel

torch.nn.parallel.data_parallel

在给定的 device_ids 中并行评估 module(input)模块。


© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,主题由 Read the Docs 提供。

文档

PyTorch 开发者文档全面访问

查看文档

教程

获取初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源