Shortcuts

层丢弃

class torchtune.modules.LayerDropout(prob: float = 0.0, dim: Optional[int] = 0, disable_on_eval: Optional[bool] = True, seed: Optional[int] = None)[source]

一个对基础模块的输入张量应用层丢弃的模块。 它丢弃输入张量的一部分,对张量的剩余部分应用基础模块,然后与丢弃的张量部分进行拼接。 在训练期间应用时,它可以起到正则化的效果,并可能加速训练。

Parameters:
  • prob (float) – 输入被丢弃的概率。默认为0.0。

  • dim (可选[int]) – 输入张量沿其删除层的维度。默认为0(即批量大小)。

  • disable_on_eval (可选[bool]) – 是否在评估期间禁用层丢弃。默认为 True。

  • seed (可选[int]) – 随机数生成器的种子。默认为 None。

示例

>>> import torch
>>> # Apply layer dropout to a lambda function
>>> layer_dropout = LayerDropout(prob=0.5)
>>> output = layer_dropout(lambda x: x**2, torch.randn(1))
>>> # Apply layer dropout to a torch.nn.Linear module
>>> linear = torch.nn.Linear(5, 3)
>>> layer_dropout = LayerDropout(prob=0.5)
>>> output = layer_dropout(linear, torch.randn(1, 5))
forward(function: Union[Callable, Module], input: Tensor, *args, **kwargs) Tensor[source]

对输入张量应用层丢弃。

Parameters:
  • function (Union[Callable, torch.nn.Module]) – 应用于输入张量的函数或模块。

  • 输入 (torch.Tensor) – 输入张量。

  • *args – 传递给函数的额外位置参数。

  • **kwargs – 传递给函数的额外关键字参数。

Returns:

应用层dropout后的输出张量。

Return type:

torch.Tensor