torch.nn.functional

TORCH.NN.FUNCTIONAL

Convolution functions

conv1d

torch.nn.functional.conv1d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) → Tensor在由多個(gè)輸入平面組成的輸入信號上應(yīng)用一維卷積。

  • input – 輸入形狀的張量(minibatch,in_channels,iW)
  • weight – 形狀濾(out_channels,in_channels/groups,kW)的波器
  • bias – 形狀(out_channels) 的可選偏差. Default: None
  • stride – 卷積內(nèi)核的步幅●没椋可以是一個(gè)數(shù)字或一個(gè)元素的元組(sW谭溉,)痰娱。默認(rèn)值:1
  • padding – 輸入兩側(cè)的隱式填充芽世⌒敝可以是一個(gè)數(shù)字或一個(gè)元素的元組(padW,)苗踪。默認(rèn)值:0
  • dilation – 內(nèi)核元素之間的間距颠区。可以是一個(gè)數(shù)字或一個(gè)元素的元組(dW通铲,)毕莱。默認(rèn)值:1
  • groups – 將輸入分成幾組,in_channels應(yīng)該被組數(shù)整除测暗。默認(rèn)值:1
>>> filters = torch.randn(33, 16, 3)
>>> inputs = torch.randn(20, 16, 50)
>>> F.conv1d(inputs, filters)

conv2d

torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) → Tensor在由多個(gè)輸入平面組成的輸入圖像上應(yīng)用2D卷積央串。

  • input – 輸入形狀的張量(minibatch,in_channels,iH,iW)
  • weight – 形狀濾(out_channels,in_channels/groups,kH,kW)的波器
  • bias – 形狀(out_channels) 的可選偏差. Default: None
  • stride – 卷積內(nèi)核的步幅⊥胱模可以是一個(gè)數(shù)字或一個(gè)元素的元組(sH质和,sW,)稚字。默認(rèn)值:1
  • padding – 輸入兩側(cè)的隱式填充饲宿。可以是一個(gè)數(shù)字或一個(gè)元素的元組(padH胆描,padW)瘫想。默認(rèn)值:0
  • dilation – 內(nèi)核元素之間的間距〔玻可以是一個(gè)數(shù)字或一個(gè)元素的元組(dH国夜,dW)。默認(rèn)值:1
  • groups – 將輸入分成幾組短绸,in_channels應(yīng)該被組數(shù)整除车吹。默認(rèn)值:1
>>> # With square kernels and equal stride
>>> filters = torch.randn(8,4,3,3)
>>> inputs = torch.randn(1,4,5,5)
>>> F.conv2d(inputs, filters, padding=1)

conv3d

torch.nn.functional.conv3d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) → Tensor

在由多個(gè)輸入平面組成的輸入圖像上應(yīng)用3D卷積。

  • input – 輸入形狀的張量(minibatch,in_channels,iT,iH,iW)
  • weight – 形狀濾(out_channels,in_channels/groups,kT,kH,kW*)的波器
  • bias – 形狀(out_channels) 的可選偏差. Default: None
  • stride – 卷積內(nèi)核的步幅醋闭≌裕可以是一個(gè)數(shù)字或一個(gè)元素的元組(sT,sH,sW证逻,)乐埠。默認(rèn)值:1
  • padding – 輸入兩側(cè)的隱式填充∏羝螅可以是一個(gè)數(shù)字或一個(gè)元素的元組(padT丈咐,padH,padW)洞拨。默認(rèn)值:0
  • dilation – 內(nèi)核元素之間的間距扯罐。可以是一個(gè)數(shù)字或一個(gè)元素的元組(dT烦衣,dH歹河,dW)掩浙。默認(rèn)值:1
  • groups – 將輸入分成幾組,in_channels應(yīng)該被組數(shù)整除秸歧。默認(rèn)值:1
>>> filters = torch.randn(33, 16, 3, 3, 3)
>>> inputs = torch.randn(20, 16, 50, 10, 20)
>>> F.conv3d(inputs, filters)

conv_transpose1d

torch.nn.functional.conv_transpose1d(input, weight, bias=None, stride=1, padding=0, output_padding=0, groups=1, dilation=1) → Tensor在由幾個(gè)輸入平面組成的輸入信號上應(yīng)用一維轉(zhuǎn)置卷積算符厨姚,有時(shí)也稱為“反卷積”。

  • input – 輸入形狀的張量(minibatch,in_channels,iW)
  • weight – 形狀濾(out_channels,in_channels/groups,kW)的波器
  • bias – 形狀(out_channels) 的可選偏差. Default: None
  • stride – 卷積內(nèi)核的步幅键菱∶剑可以是一個(gè)數(shù)字或一個(gè)元素的元組(sW,)经备。默認(rèn)值:1
  • padding – dilation * (kernel_size - 1) - padding零填充將添加到輸入中每個(gè)尺寸的兩側(cè)拭抬。可以是一個(gè)數(shù)字或一個(gè)元素的元組(padW侵蒙,)造虎。默認(rèn)值:0
  • output_padding – 在輸出形狀的每個(gè)尺寸的一側(cè)添加了附加尺寸》坠耄可以是單個(gè)數(shù)字或元組(out_padW)算凿。默認(rèn)值:0
  • groups – 將輸入分成幾組,in_channels應(yīng)該被組數(shù)整除犁功。默認(rèn)值:1
  • dilation – 內(nèi)核元素之間的間距氓轰。可以是一個(gè)數(shù)字或一個(gè)元素的元組(dW浸卦,)署鸡。默認(rèn)值:1
>>> inputs = torch.randn(20, 16, 50)
>>> weights = torch.randn(16, 33, 5)
>>> F.conv_transpose1d(inputs, weights)

conv_transpose2d

torch.nn.functional.conv_transpose2d(input, weight, bias=None, stride=1, padding=0, output_padding=0, groups=1, dilation=1) → Tensor在由幾個(gè)輸入平面組成的輸入圖像上應(yīng)用二維轉(zhuǎn)置卷積運(yùn)算符,有時(shí)也稱為“反卷積”限嫌。

  • input – 輸入形狀的張量(minibatch,in_channels,iH,iW*)
  • weight – 形狀濾(out_channels,in_channels/groups,kH,kW*)的波器
  • bias – 形狀(out_channels) 的可選偏差. Default: None
  • stride – 卷積內(nèi)核的步幅储玫。可以是一個(gè)數(shù)字或一個(gè)元素的元組(sH萤皂,sW)。默認(rèn)值:1
  • padding – dilation * (kernel_size - 1) - padding零填充將添加到輸入中每個(gè)尺寸的兩側(cè)匣椰●晌酰可以是一個(gè)數(shù)字或一個(gè)元素的元組(padH,padW)禽笑。默認(rèn)值:0
  • output_padding – 在輸出形狀的每個(gè)尺寸的一側(cè)添加了附加尺寸入录。可以是單個(gè)數(shù)字或元組(out_padH, out_padW)佳镜。默認(rèn)值:0
  • groups – 將輸入分成幾組僚稿,in_channels應(yīng)該被組數(shù)整除。默認(rèn)值:1
  • dilation – 內(nèi)核元素之間的間距蟀伸∈赐可以是一個(gè)數(shù)字或一個(gè)元素的元組(dH缅刽,dW)。默認(rèn)值:1
>>> # With square kernels and equal stride
>>> inputs = torch.randn(1, 4, 5, 5)
>>> weights = torch.randn(4, 8, 3, 3)
>>> F.conv_transpose2d(inputs, weights, padding=1)

conv_transpose3d

torch.nn.functional.conv_transpose3d(input, weight, bias=None, stride=1, padding=0, output_padding=0, groups=1, dilation=1) → Tensor在由多個(gè)輸入平面組成的輸入圖像上應(yīng)用3D轉(zhuǎn)置卷積運(yùn)算符蠢络,有時(shí)也稱為“反卷積”

  • input – 輸入形狀的張量(minibatch,in_channels,iT,iH,iW)
  • weight – 形狀濾(out_channels,in_channels/groups,kT,kH,kW*)的波器
  • bias – 形狀(out_channels) 的可選偏差. Default: None
  • stride – 卷積內(nèi)核的步幅衰猛。可以是一個(gè)數(shù)字或一個(gè)元素的元組(sT, sH刹孔,sW)啡省。默認(rèn)值:1
  • padding – dilation * (kernel_size - 1) - padding零填充將添加到輸入中每個(gè)尺寸的兩側(cè)∷柘迹可以是一個(gè)數(shù)字或一個(gè)元素的元組(padT, padH卦睹,padW)。默認(rèn)值:0
  • output_padding – 在輸出形狀的每個(gè)尺寸的一側(cè)添加了附加尺寸方库〗嵝颍可以是單個(gè)數(shù)字或元組(out_padT, out_padH, out_padW)。默認(rèn)值:0
  • groups – 將輸入分成幾組薪捍,in_channels應(yīng)該被組數(shù)整除笼痹。默認(rèn)值:1
  • dilation – 內(nèi)核元素之間的間距±掖可以是一個(gè)數(shù)字或一個(gè)元素的元組(dT, dH凳干,dW)。默認(rèn)值:1
>>> inputs = torch.randn(20, 16, 50, 10, 20)
>>> weights = torch.randn(16, 33, 3, 3, 3)
>>> F.conv_transpose3d(inputs, weights)

unfold

torch.nn.functional.unfold(input, kernel_size, dilation=1, padding=0, stride=1)從批處理輸入張量中提取滑動(dòng)局部塊被济。

fold

torch.nn.functional.fold(input, output_size, kernel_size, dilation=1, padding=0, stride=1)將一系列滑動(dòng)局部塊組合成一個(gè)大型的張量救赐。

Pooling functions

avg_pool1d

torch.nn.functional.avg_pool1d(input, kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True) → Tensor在由多個(gè)輸入平面組成的輸入信號上應(yīng)用一維平均池。

  • input – 輸入形狀的張量(minibatch,in_channels,iW)
  • kernel_size –窗口的大小只磷【酰可以是單個(gè)數(shù)字或元組 (kW,)
  • stride – 窗戶的步幅∨プ罚可以是單個(gè)數(shù)字或元組(sW预厌,)。 Default: kernel_size
  • padding – 輸入兩側(cè)的隱式零填充元媚≡矗可以是單個(gè)數(shù)字或元組(padW,)刊棕。Default: 0
  • ceil_mode – 為True時(shí)炭晒,將使用ceil而不是floor來計(jì)算輸出形狀。默認(rèn)值:False
  • count_include_pad –當(dāng)為True時(shí)甥角,將在平均計(jì)算中包括零填充网严。默認(rèn)值:True
>>> # pool of square window of size=3, stride=2
>>> input = torch.tensor([[[1, 2, 3, 4, 5, 6, 7]]], dtype=torch.float32)
>>> F.avg_pool1d(input, kernel_size=3, stride=2)
tensor([[[ 2.,  4.,  6.]]])

avg_pool2d

torch.nn.functional.avg_pool2d(input, kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True, divisor_override=None) → Tensor:在kH×kW區(qū)域中按步長sH×sW步長應(yīng)用2D平均池運(yùn)算。輸出要素的數(shù)量等于輸入平面的數(shù)量嗤无。

  • input – 輸入形狀的張量(minibatch,in_channels震束,iH,iW)
  • kernel_size –窗口的大小怜庸。可以是單個(gè)數(shù)字或元組 (kH,kW)
  • stride – 窗戶的步幅驴一⌒荽疲可以是單個(gè)數(shù)字或元組(sH,sW)肝断。 Default: kernel_size
  • padding – 輸入兩側(cè)的隱式零填充杈曲。可以是單個(gè)數(shù)字或元組(padH胸懈,padW)担扑。Default: 0
  • ceil_mode – 為True時(shí),將使用ceil而不是floor來計(jì)算輸出形狀趣钱。默認(rèn)值:False
  • count_include_pad –當(dāng)為True時(shí)涌献,將在平均計(jì)算中包括零填充。默認(rèn)值:True
  • divisor_override – 如果指定首有,它將用作除數(shù)燕垃,否則將使用池化區(qū)域的大小。默認(rèn)值:None

avg_pool3d

torch.nn.functional.avg_pool3d(input, kernel_size, stride=None, padding=0, ceil_mode=False, count_include_pad=True, divisor_override=None) → Tensor通過步長sT×sH×sW step,在kT×kH×kW區(qū)域中應(yīng)用3D平均池操作井联。輸出要素的數(shù)量等于input planes/sT卜壕。

  • input – 輸入形狀的張量(minibatch,in_channels,iT x iH,iW)
  • kernel_size –窗口的大小烙常≈嵘樱可以是單個(gè)數(shù)字或元組 (kT, kH,kW)
  • stride – 窗戶的步幅〔显啵可以是單個(gè)數(shù)字或元組(sT, sH侦副,sW)。 Default: kernel_size
  • padding – 輸入兩側(cè)的隱式零填充驼鞭∏匮保可以是單個(gè)數(shù)字或元組(padT, padH,padW)挣棕。Default: 0
  • ceil_mode – 為True時(shí)汇竭,將使用ceil而不是floor來計(jì)算輸出形狀。默認(rèn)值:False
  • count_include_pad –當(dāng)為True時(shí),將在平均計(jì)算中包括零填充黍瞧。默認(rèn)值:True
  • divisor_override – 如果指定匾嘱,它將用作除數(shù),否則將使用池化區(qū)域的大小廓握。默認(rèn)值:None

max_pool1d

torch.nn.functional.max_pool1d(*args, **kwargs)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用一維最大池化。

max_pool2d

torch.nn.functional.max_pool2d(*args, **kwargs)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用2D最大合并。

max_pool3d

torch.nn.functional.max_pool3d(*args, **kwargs)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用3D最大池化偿枕。

max_unpool1d

torch.nn.functional.max_unpool1d(input, indices, kernel_size, stride=None, padding=0, output_size=None)計(jì)算MaxPool1d的局部逆璧瞬。

max_unpool2d

torch.nn.functional.max_unpool2d(input, indices, kernel_size, stride=None, padding=0, output_size=None)計(jì)算MaxPool2d的局部逆。

max_unpool3d

torch.nn.functional.max_unpool3d(input, indices, kernel_size, stride=None, padding=0, output_size=None)計(jì)算MaxPool3d的局部逆渐夸。

lp_pool1d

torch.nn.functional.lp_pool1d(input, norm_type, kernel_size, stride=None, ceil_mode=False)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用一維冪平均池嗤锉。如果p的冪的所有輸入的總和為零,則梯度也設(shè)置為零墓塌。

lp_pool2d

torch.nn.functional.lp_pool2d(input, norm_type, kernel_size, stride=None, ceil_mode=False)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用2D功率平均池瘟忱。如果p的冪的所有輸入的總和為零,則梯度也設(shè)置為零苫幢。

adaptive_max_pool1d

torch.nn.functional.adaptive_max_pool1d(*args, **kwargs)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用一維自適應(yīng)最大池化访诱。

  • output_size – 目標(biāo)輸出尺寸 (single integer)
  • return_indices – 是否返回池索引。默認(rèn)值:False

adaptive_max_pool2d

torch.nn.functional.adaptive_max_pool2d(*args, **kwargs)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用2D自適應(yīng)最大池化韩肝。

  • output_size – 目標(biāo)輸出大写ゲ恕(單整數(shù)或雙整數(shù)元組)
  • return_indices – 是否返回池索引。默認(rèn)值:False

adaptive_max_pool3d

torch.nn.functional.adaptive_max_pool3d(*args, **kwargs)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用3D自適應(yīng)最大池化哀峻。

  • output_size – 目標(biāo)輸出大形邢唷(單整數(shù)或三整數(shù)元組)
  • return_indices – 是否返回池索引。默認(rèn)值:False

adaptive_avg_pool1d

torch.nn.functional.adaptive_avg_pool1d(input, output_size) → Tensor在由多個(gè)輸入平面組成的輸入信號上應(yīng)用一維自適應(yīng)平均池剩蟀。

output_size – 目標(biāo)輸出大写呋取(單個(gè)整數(shù))

adaptive_avg_pool2d

torch.nn.functional.adaptive_avg_pool2d(input, output_size)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用2D自適應(yīng)平均池。

output_size – 目標(biāo)輸出大杏骺酢(單整數(shù)或雙整數(shù)元組)

adaptive_avg_pool3d

torch.nn.functional.adaptive_avg_pool3d(input, output_size)在由多個(gè)輸入平面組成的輸入信號上應(yīng)用3D自適應(yīng)平均池生逸。

output_size – 目標(biāo)輸出大小(單整數(shù)或三整數(shù)元組)

Non-linear activation functions

threshold

torch.nn.functional.threshold(input, threshold, value, inplace=False)設(shè)置輸入張量的每個(gè)元素的閾值且预。

torch.nn.functional.threshold_(input, threshold, value) → Tensor

relu

torch.nn.functional.relu(input, inplace=False) → Tensor按元素應(yīng)用整流線性單位函數(shù)槽袄。有關(guān)更多詳細(xì)信息,請參見ReLU锋谐。

torch.nn.functional.relu_(input) → Tensor

hardtanh

torch.nn.functional.hardtanh(input, min_val=-1., max_val=1., inplace=False) → Tensor按元素應(yīng)用HardTanh函數(shù)遍尺。有關(guān)更多詳細(xì)信息,請參見Hardtanh涮拗。

torch.nn.functional.hardtanh_(input, min_val=-1., max_val=1.) → Tensor

relu6

torch.nn.functional.relu6(input, inplace=False) → Tensor應(yīng)用逐元素函數(shù)\ReLU6(x)= min(max(0乾戏,x),6)三热。

elu

torch.nn.functional.elu(input, alpha=1.0, inplace=False) 逐元素ELU(x)=max(0,x)+min(0,α?(exp(x)?1)) .

torch.nn.functional.elu_(input, alpha=1.) → Tensor

selu

torch.nn.functional.selu(input, inplace=False) → Tensor:逐元素 SELU(x)=scale?(max(0,x)+min(0,α?(exp(x)?1))) , withα=1.6732632423543772848170429916717 并且 scale=1.0507009873554804934193349852946

celu

torch.nn.functional.celu(input, alpha=1., inplace=False) → Tensor:逐元素CELU(x)=max(0,x)+min(0,α?(exp(x/α)?1)) .

leaky_relu

torch.nn.functional.leaky_relu(input, negative_slope=0.01, inplace=False) → Tensor:逐元素LeakyReLU(x)=max(0,x)+negative_slope min(0,x)

torch.nn.functional.leaky_relu_(input, negative_slope=0.01) → Tensor

prelu

torch.nn.functional.prelu(input, weight) → Tensor:逐元素PReLU(x)=max(0,x)+weight?min(0,x) 可學(xué)習(xí)的權(quán)重鼓择。

rrelu

torch.nn.functional.rrelu(input, lower=1./8, upper=1./3, training=False, inplace=False) → Tensor:隨機(jī)的leaky ReLU。

torch.nn.functional.rrelu_(input, lower=1./8, upper=1./3, training=False) → Tensor

glu

torch.nn.functional.glu(input, dim=-1) → Tensor:門控線性單元就漾。計(jì)算:GLU(a,b)=a?σ(b)呐能。其中輸入沿dim分成兩半以形成a和b,σ是sigmoid 型函數(shù),而?是矩陣之間的按元素乘積摆出。

  • input (Tensor) –輸入張量
  • dim (int) – 分割輸入的維度朗徊。默認(rèn)值:-1

gelu

torch.nn.functional.gelu(input) → Tensor:GeLU(x)=x?Φ(x),其中Φ(x)是高斯分布的累積分布函數(shù)偎漫。

logsigmoid

torch.nn.functional.logsigmoid(input) → Tensor:LogSigmoid(x_i)=log(1/(1+exp(?x_i)))

hardshrink

torch.nn.functional.hardshrink(input, lambd=0.5) → Tensor:逐個(gè)應(yīng)用硬收縮功能

tanhshrink

torch.nn.functional.tanhshrink(input) → Tensor: Tanhshrink(x)=x?Tanh(x)

softsign

torch.nn.functional.softsign(input) → Tensor:
\text{SoftSign}(x) = \frac{x}{1 + |x|}

softplus

torch.nn.functional.softplus(input, beta=1, threshold=20) → Tensor

softmin

torch.nn.functional.softmin(input, dim=None, _stacklevel=3, dtype=None):應(yīng)用softmin函數(shù)爷恳。Softmin(x)=Softmax(?x)有關(guān)數(shù)學(xué)公式,請參見softmax定義象踊。

  • input (Tensor) – 輸入
  • dim (int) –將計(jì)算softmin的維度(因此温亲,沿著dim的每個(gè)切片的總和為1)。
  • dtype (torch.dtype, optional) – 返回張量的所需數(shù)據(jù)類型通危。如果指定铸豁,則在執(zhí)行操作之前將輸入張量強(qiáng)制轉(zhuǎn)換為dtype。 這對于防止數(shù)據(jù)類型溢出很有用菊碟。默認(rèn)值:None节芥。

softmax

torch.nn.functional.softmax(input, dim=None, _stacklevel=3, dtype=None):應(yīng)用softmax函數(shù)。Softmax is defined as:
Softmax(x_i)= \frac{exp(x_i)}{∑_jexp(x_j)}
它將應(yīng)用于沿dim的所有切片逆害,并將對其進(jìn)行重新縮放头镊,以使元素位于[0,1]范圍內(nèi)且總和為1魄幕。

  • input (Tensor) – 輸入
  • dim (int) – 將沿著其計(jì)算softmax的尺寸相艇。
  • dtype (torch.dtype, optional) – 返回張量的所需數(shù)據(jù)類型。如果指定纯陨,則在執(zhí)行操作之前將輸入張量強(qiáng)制轉(zhuǎn)換為dtype坛芽。這對于防止數(shù)據(jù)類型溢出很有用。默認(rèn)值:None翼抠。

softshrink

torch.nn.functional.softshrink(input, lambd=0.5) → Tensor:逐個(gè)應(yīng)用軟收縮功能

gumbel_softmax

torch.nn.functional.gumbel_softmax(logits, tau=1, hard=False, eps=1e-10, dim=-1):Gumbel-Softmax發(fā)行版(鏈接1鏈接2)中的樣本咙轩,也可以離散化。

  • logits – […, num_features] 未標(biāo)準(zhǔn)化的日志概率
  • tau – 非負(fù)標(biāo)量尺度
  • hard – 如果為True阴颖,則返回的樣本將被離散為一熱向量活喊,但將被區(qū)別為好像是autograd中的軟樣本
  • dim (int) – 將沿著其計(jì)算softmax的尺寸。默認(rèn)值:-1量愧。
>>> logits = torch.randn(20, 32)
>>> # Sample soft categorical using reparametrization trick:
>>> F.gumbel_softmax(logits, tau=1, hard=False)
>>> # Sample hard categorical using "Straight-through" trick:
>>> F.gumbel_softmax(logits, tau=1, hard=True)

log_softmax

torch.nn.functional.log_softmax(input, dim=None, _stacklevel=3, dtype=None):應(yīng)用softmax钾菊,后跟對數(shù)。

雖然在數(shù)學(xué)上等效于log(softmax(x))偎肃,但分別執(zhí)行這兩個(gè)操作比較慢煞烫,并且在數(shù)值上不穩(wěn)定。此函數(shù)使用替代公式來正確計(jì)算輸出和漸變累颂。

  • input (Tensor) – 輸入
  • dim (int) – 將沿其計(jì)算log_softmax的維红竭。
  • dtype (torch.dtype, optional) –返回張量的所需數(shù)據(jù)類型。如果指定,則在執(zhí)行操作之前將輸入張量強(qiáng)制轉(zhuǎn)換為dtype茵宪。這對于防止數(shù)據(jù)類型溢出很有用。默認(rèn)值:None瘦棋。

tanh

torch.nn.functional.tanh(input) → Tensor
Tanh(x)=tanh(x)= \frac{exp(x)?exp(?x)}{exp(x)+exp(?x)}

sigmoid

torch.nn.functional.sigmoid(input) → Tensor
\text{Sigmoid}(x) = \frac{1}{1 + \exp(-x)}

Normalization functions

batch_norm

torch.nn.functional.batch_norm(input, running_mean, running_var, weight=None, bias=None, training=False, momentum=0.1, eps=1e-05)對一批數(shù)據(jù)中的每個(gè)通道應(yīng)用批標(biāo)準(zhǔn)化稀火。

instance_norm

torch.nn.functional.instance_norm(input, running_mean=None, running_var=None, weight=None, bias=None, use_input_stats=True, momentum=0.1, eps=1e-05)批量對每個(gè)數(shù)據(jù)樣本中的每個(gè)通道應(yīng)用實(shí)例歸一化

layer_norm

torch.nn.functional.layer_norm(input, normalized_shape, weight=None, bias=None, eps=1e-05)將圖層歸一化應(yīng)用于最后一定數(shù)量的尺寸。

local_response_norm

torch.nn.functional.local_response_norm(input, size, alpha=0.0001, beta=0.75, k=1.0)在由幾個(gè)輸入平面組成的輸入信號上應(yīng)用本地響應(yīng)歸一化赌朋,其中通道占據(jù)第二維凰狞。跨通道應(yīng)用標(biāo)準(zhǔn)化沛慢。

normalize

torch.nn.functional.normalize(input, p=2, dim=1, eps=1e-12, out=None)

執(zhí)行L_p指定尺寸上的輸入標(biāo)準(zhǔn)化赡若。對于大小為
(n_0,...团甲,n_ {dim}逾冬,...,n_k)
的張量輸入躺苦,每個(gè)
n_{dim}
沿維度dim的元素向量v轉(zhuǎn)換為
v= \frac{v}{max(∥v∥_p,?)}
使用默認(rèn)參數(shù)時(shí)身腻,它沿維使用向量1上的歐幾里得范數(shù)歸一化。

  • input – 任何形狀的輸入張量
  • p (float) –規(guī)范制定中的指數(shù)值匹厘。默認(rèn)值:2
  • dim (int) –減小尺寸嘀趟。默認(rèn)值:1
  • eps (float) – 小值,以避免被零除愈诚。默認(rèn)值:1e-12
  • out (Tensor, optional) – 輸出張量她按。如果使用out,則此操作將不可微炕柔。

Linear functions

linear

torch.nn.functional.linear(input, weight, bias=None)

對輸入數(shù)據(jù)應(yīng)用線性變換:
y=xA^T+b .

bilinear

torch.nn.functional.bilinear(input1, input2, weight, bias=None):對輸入數(shù)據(jù)應(yīng)用雙線性轉(zhuǎn)換:
y=x_1Ax_2+b

Dropout functions

dropout

torch.nn.functional.dropout(input, p=0.5, training=True, inplace=False)在訓(xùn)練期間酌泰,使用伯努利分布的樣本以概率p將輸入張量的某些元素隨機(jī)置零。

  • p –元素歸零的概率汗唱。默認(rèn)值:0.5
  • training – 如果為True宫莱,則應(yīng)用dropout。默認(rèn)值:True
  • inplace –如果設(shè)置為True哩罪,將就地執(zhí)行此操作授霸。默認(rèn)值:False

alpha_dropout

torch.nn.functional.alpha_dropout(input, p=0.5, training=False, inplace=False)

dropout2d

torch.nn.functional.dropout2d(input, p=0.5, training=True, inplace=False)隨機(jī)將整個(gè)通道歸零(通道是2D特征圖,例如际插,批輸入中的第i個(gè)樣本的第j個(gè)通道是2D張量input [i碘耳,j ])的輸入張量)。使用伯努利分布的樣本框弛,每個(gè)信道將在每次forward中以概率p獨(dú)立清零辛辨。

  • p –通道歸零的概率。默認(rèn)值:0.5
  • training – 如果為True,則應(yīng)用dropout斗搞。默認(rèn)值:True
  • inplace – 如果設(shè)置為True指攒,將就地執(zhí)行此操作。默認(rèn)值:False

dropout3d

torch.nn.functional.dropout3d(input, p=0.5, training=True, inplace=False)隨機(jī)將整個(gè)通道歸零(通道是3D特征圖僻焚,例如允悦,批輸入中的第i個(gè)樣本的第j個(gè)通道是3D張量input [i,j ])的輸入張量)虑啤。使用伯努利分布的樣本隙弛,每個(gè)信道將在每次forward中以概率p獨(dú)立清零。

  • p –通道歸零的概率狞山。默認(rèn)值:0.5
  • training – 如果為True全闷,則應(yīng)用dropout。默認(rèn)值:True
  • inplace – 如果設(shè)置為True萍启,將就地執(zhí)行此操作总珠。默認(rèn)值:False

Sparse functions

embedding

torch.nn.functional.embedding(input, weight, padding_idx=None, max_norm=None, norm_type=2.0, scale_grad_by_freq=False, sparse=False)一個(gè)簡單的查找表,用于以固定的字典和大小查找嵌入伊约。

該模塊通常用于使用索引檢索單詞嵌入姚淆。模塊的輸入是索引列表和嵌入矩陣,輸出是相應(yīng)的詞嵌入屡律。

  • input (LongTensor) – 包含嵌入張量矩陣的索引的張量
  • weight (Tensor) – 行數(shù)等于最大可能索引+ 1腌逢,列數(shù)等于嵌入大小的嵌入矩陣
  • padding_idx (int, optional) – 如果指定給定輸出,則在遇到索引時(shí)超埋,將輸出用padding_idx(初始化為零)處的嵌入矢量填充搏讶。
  • max_norm (float, optional) – 如果給定,則范數(shù)大于max_norm的每個(gè)嵌入矢量將重新規(guī)范化為范數(shù)max_norm霍殴。注意:這將修改就地重量媒惕。
  • norm_type (float, optional) – 為max_norm選項(xiàng)計(jì)算的p范數(shù)的p。默認(rèn)值2来庭。
  • scale_grad_by_freq (boolean, optional) – 如果給定的話妒蔚,它將按小批量中單詞頻率的倒數(shù)來縮放梯度。默認(rèn)為False月弛。
  • sparse (bool, optional) –如果為True肴盏,則梯度為w.r.t.重量將是一個(gè)稀疏的張量。有關(guān)稀疏漸變的更多詳細(xì)信息帽衙,請參見torch.nn.Embedding下的注釋菜皂。
>>> # a batch of 2 samples of 4 indices each
>>> input = torch.tensor([[1,2,4,5],[4,3,2,9]])
>>> # an embedding matrix containing 10 tensors of size 3
>>> embedding_matrix = torch.rand(10, 3)
>>> F.embedding(input, embedding_matrix)
tensor([[[ 0.8490,  0.9625,  0.6753],
         [ 0.9666,  0.7761,  0.6108],
         [ 0.6246,  0.9751,  0.3618],
         [ 0.4161,  0.2419,  0.7383]],

        [[ 0.6246,  0.9751,  0.3618],
         [ 0.0237,  0.7794,  0.0528],
         [ 0.9666,  0.7761,  0.6108],
         [ 0.3385,  0.8612,  0.1867]]])

>>> # example with padding_idx
>>> weights = torch.rand(10, 3)
>>> weights[0, :].zero_()
>>> embedding_matrix = weights
>>> input = torch.tensor([[0,2,0,5]])
>>> F.embedding(input, embedding_matrix, padding_idx=0)
tensor([[[ 0.0000,  0.0000,  0.0000],
         [ 0.5609,  0.5384,  0.8720],
         [ 0.0000,  0.0000,  0.0000],
         [ 0.6262,  0.2438,  0.7471]]])

embedding_bag

torch.nn.functional.embedding_bag(input, weight, offsets=None, max_norm=None, norm_type=2, scale_grad_by_freq=False, mode='mean', sparse=False, per_sample_weights=None)計(jì)算嵌入包的總和,平均值或最大值厉萝,而無需實(shí)例化中間嵌入恍飘。

  • input (LongTensor) – 將張量包含索引的袋放入嵌入矩陣
  • weight (Tensor) –行數(shù)等于最大可能索引+ 1榨崩,列數(shù)等于嵌入大小的嵌入矩陣
  • offsets (LongTensor, optional) – 僅在輸入為1D時(shí)使用。偏移量確定輸入中每個(gè)袋(序列)的起始索引位置章母。
  • max_norm (float, optional) – 如果給定母蛛,則范數(shù)大于max_norm的每個(gè)嵌入矢量將重新規(guī)范化為范數(shù)max_norm。注意:這將修改就地重量乳怎。
  • norm_type (float, optional) – p范數(shù)中的p為max_norm選項(xiàng)進(jìn)行計(jì)算溯祸。默認(rèn)值2。
  • scale_grad_by_freq (boolean, optional) – 如果給定的話舞肆,它將按小批量中單詞頻率的倒數(shù)來縮放梯度。默認(rèn)為False博杖。注意:mode =“ max”時(shí)不支持此選項(xiàng)椿胯。
  • mode (string, optional) –summeanmax剃根。指定減少袋子的方式哩盲。默認(rèn)值:mean
  • sparse (bool, optional) – 如果為True,則梯度為w.r.t.weight將是一個(gè)稀疏的張量狈醉。有關(guān)稀疏漸變的更多詳細(xì)信息廉油,請參見torch.nn.Embedding下的注釋。注意:mode =“ max”時(shí)不支持此選項(xiàng)苗傅。
  • per_sample_weights (Tensor, optional) – 一個(gè)float / double權(quán)重的張量抒线,或者None表示所有權(quán)重都應(yīng)為1。如果指定渣慕,則per_sample_weights的形狀必須與輸入完全相同嘶炭,并且如果不為None,則被視為具有相同的偏移量逊桦。
>>> # an Embedding module containing 10 tensors of size 3
>>> embedding_matrix = torch.rand(10, 3)
>>> # a batch of 2 samples of 4 indices each
>>> input = torch.tensor([1,2,4,5,4,3,2,9])
>>> offsets = torch.tensor([0,4])
>>> F.embedding_bag(embedding_matrix, input, offsets)
tensor([[ 0.3397,  0.3552,  0.5545],
        [ 0.5893,  0.4386,  0.5882]])

one_hot

torch.nn.functional.one_hot(tensor, num_classes=-1) → LongTensor

接受具有shape(*)索引值的LongTensor并返回一個(gè)形狀(*眨猎,num_classes)的張量傻粘,該張量在各處都為零记劝,除非最后一維的索引與輸入張量的對應(yīng)值匹配,在這種情況下它將為1庭敦。

  • tensor (LongTensor) –任何形狀的類值匿情。
  • num_classes (int) – 類別總數(shù)兰迫。如果設(shè)置為-1,則將類數(shù)推斷為比輸入張量中的最大類值大一码秉。
>>> F.one_hot(torch.arange(0, 5) % 3)
tensor([[1, 0, 0],
        [0, 1, 0],
        [0, 0, 1],
        [1, 0, 0],
        [0, 1, 0]])
>>> F.one_hot(torch.arange(0, 5) % 3, num_classes=5)
tensor([[1, 0, 0, 0, 0],
        [0, 1, 0, 0, 0],
        [0, 0, 1, 0, 0],
        [1, 0, 0, 0, 0],
        [0, 1, 0, 0, 0]])
>>> F.one_hot(torch.arange(0, 6).view(3,2) % 3)
tensor([[[1, 0, 0],
         [0, 1, 0]],
        [[0, 0, 1],
         [1, 0, 0]],
        [[0, 1, 0],
         [0, 0, 1]]])

Distance functions

pairwise_distance

torch.nn.functional.pairwise_distance(x1, x2, p=2.0, eps=1e-06, keepdim=False)

cosine_similarity

torch.nn.functional.cosine_similarity(x1, x2, dim=1, eps=1e-8) → Tensor:返回x_1和x_2之間的余弦相似度(沿dim計(jì)算)逮矛。
similarity= \frac{x_1?x_2}{max(∥x_1∥_2?∥x_2∥_2,?)}

  • x1 (Tensor) – 第一個(gè)輸入.
  • x2 (Tensor) – 第二個(gè)輸入 (與x1大小一致).
  • dim (int, optional) – 向量維度. Default: 1
  • eps (float, optional) – 小值避免被零除. Default: 1e-8
>>> input1 = torch.randn(100, 128)
>>> input2 = torch.randn(100, 128)
>>> output = F.cosine_similarity(input1, input2)
>>> print(output)

pdist

torch.nn.functional.pdist(input, p=2) → Tensor:計(jì)算輸入中每對行向量之間的p范數(shù)距離。這與torch.norm(input [:, None]-input转砖,dim = 2须鼎,p = p)的對角線除外的上三角部分相同鲸伴。如果行是連續(xù)的,此功能將更快晋控。

如果輸入的形狀為N×M汞窗,則輸出的形狀為
\frac {1} {2} N(N-1)
如果p∈(0,∞)赡译,則此函數(shù)等效于scipy.spatial.distance.pdist(input仲吏,'minkowski',p = p)蝌焚。當(dāng)p = 0時(shí)裹唆,它等價(jià)于scipy.spatial.distance.pdist(input,'hamming')*M只洒。當(dāng)p =∞時(shí)许帐,最接近的scipy函數(shù)為scipy.spatial.distance.pdist(xn, lambda x, y: np.abs(x - y).max()).

  • input – 輸入N×M 形狀的張量.
  • p –用于計(jì)算每個(gè)向量對之間的p范數(shù)距離的p值∈[0,∞] .

Loss functions

binary_cross_entropy

torch.nn.functional.binary_cross_entropy(input, target, weight=None, size_average=None, reduce=None, reduction='mean')測量目標(biāo)和輸出之間的二進(jìn)制交叉熵的函數(shù)毕谴。

  • input – 任意形狀的張量
  • target – 與輸入形狀相同的張量
  • weight (Tensor, optional) – 手動(dòng)重新設(shè)置縮放比例的權(quán)重(如果提供的話成畦,可以重復(fù)以匹配輸入張量形狀)
  • size_average (bool, optional) – 不推薦使用(請參見減少內(nèi)容)。默認(rèn)情況下涝开,損失是批次中每個(gè)損失元素的平均數(shù)循帐。請注意,對于某些損失舀武,每個(gè)樣本有多個(gè)元素拄养。如果將字段size_average設(shè)置為False,則對每個(gè)小批量將損失相加奕剃。當(dāng)reduceFalse時(shí)被忽略衷旅。默認(rèn)值:True
  • reduce (bool, optional) – 不推薦使用(請參見減少內(nèi)容)。默認(rèn)情況下纵朋,根據(jù)size_average柿顶,對每個(gè)小批量的觀測值求平均或求和。當(dāng)reduceFalse時(shí)操软,將返回每批元素的損失嘁锯,并忽略size_average。默認(rèn)值:True
  • reduction (string, optional) – 指定要應(yīng)用于輸出的縮減量:none| mean | sum聂薪。none:不應(yīng)用任何減少家乘,mean:輸出的總和除以輸出中元素的數(shù)量,sum:輸出的總和藏澳。注意:size_averagereduce正在棄用中仁锯,同時(shí),指定這兩個(gè)參數(shù)中的任何一個(gè)將覆蓋reduce翔悠。默認(rèn)值:mean
>>> input = torch.randn((3, 2), requires_grad=True)
>>> target = torch.rand((3, 2), requires_grad=False)
>>> loss = F.binary_cross_entropy(F.sigmoid(input), target)
>>> loss.backward()

binary_cross_entropy_with_logits

torch.nn.functional.binary_cross_entropy_with_logits(input, target, weight=None, size_average=None, reduce=None, reduction='mean', pos_weight=None)測量目標(biāo)和輸出對數(shù)之間的二進(jìn)制交叉熵的函數(shù)

  • input – 任意形狀的張量
  • target – 與輸入形狀相同的張量
  • weight (Tensor, optional) – 手動(dòng)重新設(shè)置縮放比例的權(quán)重(如果提供的話业崖,可以重復(fù)以匹配輸入張量形狀)
  • size_average (bool, optional) – 不推薦使用(請參見減少內(nèi)容)野芒。默認(rèn)情況下,損失是批次中每個(gè)損失元素的平均數(shù)双炕。請注意狞悲,對于某些損失,每個(gè)樣本有多個(gè)元素妇斤。如果將字段size_average設(shè)置為False摇锋,則對每個(gè)小批量將損失相加。當(dāng)reduceFalse時(shí)被忽略站超。默認(rèn)值:True
  • reduce (bool, optional) – 不推薦使用(請參見減少內(nèi)容)荸恕。默認(rèn)情況下,根據(jù)size_average死相,對每個(gè)小批量的觀測值求平均或求和戚炫。當(dāng)reduceFalse時(shí),將返回每批元素的損失媳纬,并忽略size_average。默認(rèn)值:True
  • reduction (string, optional) – 指定要應(yīng)用于輸出的縮減量:none| mean | sum施掏。none:不應(yīng)用任何減少钮惠,mean:輸出的總和除以輸出中元素的數(shù)量,sum:輸出的總和七芭。注意:size_averagereduce正在棄用中素挽,同時(shí),指定這兩個(gè)參數(shù)中的任何一個(gè)將覆蓋reduce狸驳。默認(rèn)值:mean
  • pos_weight (Tensor, optional) – 大量積極的例子预明。必須是長度等于類數(shù)的向量。
>>> input = torch.randn(3, requires_grad=True)
>>> target = torch.empty(3).random_(2)
>>> loss = F.binary_cross_entropy_with_logits(input, target)
>>> loss.backward()

poisson_nll_loss

torch.nn.functional.poisson_nll_loss(input, target, log_input=True, full=False, size_average=None, eps=1e-08, reduce=None, reduction='mean')泊松負(fù)對數(shù)似然損失耙箍。

  • input – 任意形狀的張量
  • target –歲采樣target~Poisson(input) .
  • log_input –如果為True撰糠,則損失計(jì)算為exp(input)?target?input , 如果為假,則損失為input?target?log(input+eps) . Default: True
  • full –是否計(jì)算全部損失辩昆; i阅酪。 e。添加斯特林近似項(xiàng)汁针。默認(rèn)值:False 是否計(jì)算全部損失术辐; ie。添加斯特林近似項(xiàng)施无。默認(rèn)值:Falsetarget?log(target)?target+0.5?log(2?π?target)
  • size_average (bool, optional) – 不推薦使用(請參見減少內(nèi)容)辉词。默認(rèn)情況下,損失是批次中每個(gè)損失元素的平均數(shù)猾骡。請注意瑞躺,對于某些損失敷搪,每個(gè)樣本有多個(gè)元素。如果將字段size_average設(shè)置為False隘蝎,則對每個(gè)小批量將損失相加购啄。當(dāng)reduceFalse時(shí)被忽略。默認(rèn)值:True
  • eps (float, optional) – 較小的值嘱么,以避免在以下情況下評估log(0) when log_input=False. Default: 1e-8
  • reduce (bool, optional) – 不推薦使用(請參見減少內(nèi)容)狮含。默認(rèn)情況下,根據(jù)size_average曼振,對每個(gè)小批量的觀測值求平均或求和几迄。當(dāng)reduceFalse時(shí),將返回每批元素的損失冰评,并忽略size_average映胁。默認(rèn)值:True
  • reduction (string, optional) – 指定要應(yīng)用于輸出的縮減量:none| mean | sumnone:不應(yīng)用任何減少甲雅,mean:輸出的總和除以輸出中元素的數(shù)量解孙,sum:輸出的總和。注意:size_averagereduce正在棄用中抛人,同時(shí)弛姜,指定這兩個(gè)參數(shù)中的任何一個(gè)將覆蓋reduce。默認(rèn)值:mean

cosine_embedding_loss

torch.nn.functional.cosine_embedding_loss(input1, input2, target, margin=0, size_average=None, reduce=None, reduction='mean') → Tensor

cross_entropy

torch.nn.functional.cross_entropy(input, target, weight=None, size_average=None, ignore_index=-100, reduce=None, reduction='mean')該標(biāo)準(zhǔn)將log_softmax和nll_loss組合在一個(gè)函數(shù)中妖枚。

  • input (Tensor) – (N, C) 其中C =類數(shù)或在2D損失的情況下 or (N, C, H, W), or (N, C, d_1, d_2, ..., d_K)(N,C,d1,d2,...,dK) 其中在K維損失的情況下為1K≥1廷臼。
  • target (Tensor) –(N)其中每個(gè)值為 0≤targets[i]≤C?1 , or (N,d1,d2,...,dK) 其中K≥1表示K維損失。
  • weight (Tensor, optional) –每個(gè)類別都需要手動(dòng)調(diào)整縮放權(quán)重比例绝页。如果給定荠商,則必須是大小為C的張量
  • size_average (bool, optional) – 不推薦使用(請參見減少內(nèi)容)。默認(rèn)情況下续誉,損失是批次中每個(gè)損失元素的平均數(shù)莱没。請注意,對于某些損失酷鸦,每個(gè)樣本有多個(gè)元素郊愧。如果將字段size_average設(shè)置為False,則對每個(gè)小批量將損失相加井佑。當(dāng)reduceFalse時(shí)被忽略属铁。默認(rèn)值:True
  • ignore_index (int, optional) – 指定一個(gè)目標(biāo)值,該目標(biāo)值將被忽略并且不會影響輸入梯度躬翁。當(dāng)size_average為True時(shí)焦蘑,損失是在非忽略目標(biāo)上平均的。默認(rèn)值:-100
  • reduce (bool, optional) – 不推薦使用(請參見減少內(nèi)容)盒发。默認(rèn)情況下例嘱,根據(jù)size_average狡逢,對每個(gè)小批量的觀測值求平均或求和。當(dāng)reduceFalse時(shí)拼卵,將返回每批元素的損失奢浑,并忽略size_average。默認(rèn)值:True
  • reduction (string, optional) – 指定要應(yīng)用于輸出的縮減量:none| mean | sum腋腮。none:不應(yīng)用任何減少雀彼,mean:輸出的總和除以輸出中元素的數(shù)量,sum:輸出的總和即寡。注意:size_averagereduce正在棄用中徊哑,同時(shí),指定這兩個(gè)參數(shù)中的任何一個(gè)將覆蓋reduce聪富。默認(rèn)值:mean
>>> input = torch.randn(3, 5, requires_grad=True)
>>> target = torch.randint(5, (3,), dtype=torch.int64)
>>> loss = F.cross_entropy(input, target)
>>> loss.backward()

ctc_loss

torch.nn.functional.ctc_loss(log_probs, targets, input_lengths, target_lengths, blank=0, reduction='mean', zero_infinity=False)連接主義者的時(shí)間分類損失莺丑。

  • log_probs –(T,N,C) 其中C =字母表中的字符數(shù),包括空白墩蔓,T =輸入長度梢莽,N =批處理大小。輸出的對數(shù)概率(例如[torch.nn.functional.log_softmax()]).
  • targets – (N,S) 或(sum(target_lengths))奸披。目標(biāo)不能為空蟹漓。在第二種形式中,假定目標(biāo)是連接在一起的源内。
  • input_lengths – (N) .輸入的長度(必須為≤T )
  • target_lengths – (N)目標(biāo)長度
  • blank (int, optional) – 空白標(biāo)簽。默認(rèn)值0 .
  • reduction (string, optional) – 指定要應(yīng)用于輸出的縮減量:none| mean | sum份殿。none:不應(yīng)用任何減少膜钓,mean:輸出的總和除以輸出中元素的數(shù)量,sum:輸出的總和卿嘲。注意:size_averagereduce正在棄用中颂斜,同時(shí),指定這兩個(gè)參數(shù)中的任何一個(gè)將覆蓋reduce拾枣。默認(rèn)值:mean
  • zero_infinity (bool, optional) – 是否將無窮大損失和相關(guān)的梯度歸零沃疮。默認(rèn)值:False無限損失主要發(fā)生在輸入太短而無法與目標(biāo)對齊時(shí)。
>>> log_probs = torch.randn(50, 16, 20).log_softmax(2).detach().requires_grad_()
>>> targets = torch.randint(1, 20, (16, 30), dtype=torch.long)
>>> input_lengths = torch.full((16,), 50, dtype=torch.long)
>>> target_lengths = torch.randint(10,30,(16,), dtype=torch.long)
>>> loss = F.ctc_loss(log_probs, targets, input_lengths, target_lengths)
>>> loss.backward()

hinge_embedding_loss

torch.nn.functional.hinge_embedding_loss(input, target, margin=1.0, size_average=None, reduce=None, reduction='mean') → Tensor

l1_loss

torch.nn.functional.l1_loss(input, target, size_average=None, reduce=None, reduction='mean') → Tensor取平均逐元素絕對值差的函數(shù)梅肤。

mse_loss

torch.nn.functional.mse_loss(input, target, size_average=None, reduce=None, reduction='mean') → Tensor測量按元素的均方誤差司蔬。

margin_ranking_loss

torch.nn.functional.margin_ranking_loss(input1, input2, target, margin=0, size_average=None, reduce=None, reduction='mean') → Tensor

multilabel_margin_loss

torch.nn.functional.multilabel_margin_loss(input, target, size_average=None, reduce=None, reduction='mean') → Tensor

multilabel_soft_margin_loss

torch.nn.functional.multilabel_soft_margin_loss(input, target, weight=None, size_average=None) → Tensor

multi_margin_loss

torch.nn.functional.multi_margin_loss(input, target, p=1, margin=1.0, weight=None, size_average=None, reduce=None, reduction='mean')

multi_margin_loss(input, target, p=1, margin=1, weight=None, size_average=None,reduce=None, reduction=’mean’) -> Tensor

nll_loss

torch.nn.functional.nll_loss(input, target, weight=None, size_average=None, ignore_index=-100, reduce=None, reduction='mean')負(fù)對數(shù)似然損失。

>>> # input is of size N x C = 3 x 5
>>> input = torch.randn(3, 5, requires_grad=True)
>>> # each element in target has to have 0 <= value < C
>>> target = torch.tensor([1, 0, 4])
>>> output = F.nll_loss(F.log_softmax(input), target)
>>> output.backward()

smooth_l1_loss

torch.nn.functional.smooth_l1_loss(input, target, size_average=None, reduce=None, reduction='mean')如果絕對逐項(xiàng)誤差低于1姨蝴,則使用平方項(xiàng)的函數(shù)俊啼,否則使用L1項(xiàng)。

soft_margin_loss

torch.nn.functional.soft_margin_loss(input, target, size_average=None, reduce=None, reduction='mean') → Tensor

triplet_margin_loss

torch.nn.functional.triplet_margin_loss(anchor, positive, negative, margin=1.0, p=2, eps=1e-06, swap=False, size_average=None, reduce=None, reduction='mean')

Vision functions

torch.nn.functional.pixel_shuffle()重新排列形狀張量中的元素(?,C×r2,H,W) 到(?,C,H×r,W×r) .

>>> input = torch.randn(1, 9, 4, 4)
>>> output = torch.nn.functional.pixel_shuffle(input, 3)
>>> print(output.size())
torch.Size([1, 1, 12, 12])

pad

torch.nn.functional.pad(input, pad, mode='constant', value=0)填充張量

>>> t4d = torch.empty(3, 3, 4, 2)
>>> p1d = (1, 1) # pad last dim by 1 on each side
>>> out = F.pad(t4d, p1d, "constant", 0)  # effectively zero padding
>>> print(out.data.size())
torch.Size([3, 3, 4, 4])
>>> p2d = (1, 1, 2, 2) # pad last dim by (1, 1) and 2nd to last by (2, 2)
>>> out = F.pad(t4d, p2d, "constant", 0)
>>> print(out.data.size())
torch.Size([3, 3, 8, 4])
>>> t4d = torch.empty(3, 3, 4, 2)
>>> p3d = (0, 1, 2, 1, 3, 3) # pad by (0, 1), (2, 1), and (3, 3)
>>> out = F.pad(t4d, p3d, "constant", 0)
>>> print(out.data.size())
torch.Size([3, 9, 7, 3])

interpolate

torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None)向下/向上采樣輸入到給定大小或給定scale_factor.用于插值的算法由模式確定左医。當(dāng)前支持時(shí)間授帕,空間和體積采樣同木,即,預(yù)期輸入的形狀為3-D跛十,4-D或5-D彤路。輸入尺寸以以下格式解釋:迷你批x通道x [可選深度] x [可選高度] x寬度〗嬗常可用于調(diào)整大小的模式為:最近洲尊,線性(僅3D),雙線性屏轰,雙三次(僅4D)颊郎,三線性(僅5D),面積

upsample

torch.nn.functional.upsample(input, size=None, scale_factor=None, mode='nearest', align_corners=None)將輸入上采樣到給定大小或給定scale_factor

upsample_nearest

torch.nn.functional.upsample_nearest(input, size=None, scale_factor=None)使用最近鄰的像素值對輸入進(jìn)行上采樣霎苗。

upsample_bilinear

torch.nn.functional.upsample_bilinear(input, size=None, scale_factor=None)使用雙線性上采樣對輸入進(jìn)行上采樣姆吭。

grid_sample

torch.nn.functional.grid_sample(input, grid, mode='bilinear', padding_mode='zeros', align_corners=None)給定input和flow-field grid,使用input和grid中的像素位置來計(jì)算輸出唁盏。當(dāng)前内狸,僅支持空間(4-D)和體積(5-D)輸入。

在空間(4-D)情況下厘擂,用于input形狀為(N昆淡,C,H_in 刽严,W_in )和形狀為(N昂灵,H _out ,W_out 舞萄,2)的grid眨补,輸出將具有(N,C倒脓,H_out 撑螺,W_out )的output。

對于每個(gè)輸出位置output [n崎弃,:甘晤,h,w]饲做,大小為2的矢量grid[n线婚,h,w]指定input像素位置xy盆均,這些像素位置用于內(nèi)插輸出值output [n酌伊,:, h,w]。在5D輸入的情況下居砖,grid [n虹脯,d,h奏候,w]指定用于內(nèi)插output [n循集,:,d蔗草,h局雄,w]的x蜗搔,y弊攘,z像素位置握爷。mode參數(shù)指定nearestbilinear插值方法以對輸入像素進(jìn)行采樣。

affine_grid

torch.nn.functional.affine_grid(theta, size, align_corners=None)給定一批仿射矩陣theta模叙,生成2D或3D流場(采樣網(wǎng)格)歇拆。

DataParallel functions (multi-GPU, distributed)

data_parallel

torch.nn.parallel.data_parallel(module, inputs, device_ids=None, output_device=None, dim=0, module_kwargs=None)跨device_ids中提供的GPU并行評估模塊(輸入)這是DataParallel模塊的功能版本。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末范咨,一起剝皮案震驚了整個(gè)濱河市故觅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渠啊,老刑警劉巖输吏,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異替蛉,居然都是意外死亡贯溅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進(jìn)店門躲查,熙熙樓的掌柜王于貴愁眉苦臉地迎上來它浅,“玉大人,你說我怎么就攤上這事熙含。” “怎么了艇纺?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵怎静,是天一觀的道長。 經(jīng)常有香客問我黔衡,道長蚓聘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任盟劫,我火速辦了婚禮夜牡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己塘装,他們只是感情好急迂,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蹦肴,像睡著了一般僚碎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上阴幌,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天勺阐,我揣著相機(jī)與錄音,去河邊找鬼矛双。 笑死渊抽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的议忽。 我是一名探鬼主播懒闷,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼徙瓶!你這毒婦竟也來了毛雇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤侦镇,失蹤者是張志新(化名)和其女友劉穎灵疮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壳繁,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡震捣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闹炉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒿赢。...
    茶點(diǎn)故事閱讀 38,697評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖渣触,靈堂內(nèi)的尸體忽然破棺而出羡棵,到底是詐尸還是另有隱情,我是刑警寧澤嗅钻,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布皂冰,位于F島的核電站,受9級特大地震影響养篓,放射性物質(zhì)發(fā)生泄漏秃流。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一柳弄、第九天 我趴在偏房一處隱蔽的房頂上張望舶胀。 院中可真熱鬧,春花似錦、人聲如沸嚣伐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纤控。三九已至挂捻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間船万,已是汗流浹背刻撒。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耿导,地道東北人声怔。 一個(gè)月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像舱呻,于是被迫代替她去往敵國和親醋火。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內(nèi)容