快捷方式

TanhNormal

class torchrl.modules.TanhNormal(loc: torch.Tensor, scale: torch.Tensor, upscale: torch.Tensor | Number = 5.0, low: torch.Tensor | Number = - 1.0, high: torch.Tensor | Number = 1.0, event_dims: int | None = None, tanh_loc: bool = False, safe_tanh: bool = True)[源代码]

实现一个带有位置缩放的 TanhNormal 分布。

位置缩放可防止在应用 TanhTransform 时位置“离 0”太远,但最终会导致样本数值不稳定和梯度计算不佳(例如梯度爆炸)。实际上,使用位置缩放时,位置的计算如下:

\[loc = tanh(loc / upscale) * upscale.\]
参数:
  • loc (torch.Tensor) – 正态分布的位置参数

  • scale (torch.Tensor) – 正态分布的 sigma 参数(方差的平方根)

  • upscale (torch.Tensor数字) –

    公式中的“a”缩放因子

    \[loc = tanh(loc / upscale) * upscale.\]

  • low (torch.Tensor数字, 可选) – 分布的最小值。默认为 -1.0;

  • high (torch.Tensor数字, 可选) – 分布的最大值。默认为 1.0;

  • event_dims (int, 可选) – 描述动作的维度数。默认为 1。将 event_dims 设置为 0 将导致对数概率与输入形状相同,设置为 1 将减去(对最后一个维度求和),设置为 2 等等。

  • tanh_loc (bool, 可选) – 如果为 True,则使用上述公式进行位置缩放,否则保留原始值。默认为 False

  • safe_tanh (bool, 可选) – 如果为 True,则 Tanh 变换会“安全地”进行,以避免数值溢出。这目前会与 torch.compile() 发生冲突。

get_mode()[源代码]

使用 Adam 优化器计算模式的估计。

property mean

返回分布的均值。

property mode

返回分布的众数。

property support

返回一个 Constraint 对象,表示此分布的支持域。

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源