TruncatedNormal¶
- class torchrl.modules.TruncatedNormal(loc: Tensor, scale: Tensor, upscale: Union[Tensor, float] = 5.0, low: Union[Tensor, float] = - 1.0, high: Union[Tensor, float] = 1.0, tanh_loc: bool = False)[源代码]¶
实现具有位置缩放的截断正态分布。
位置缩放防止位置“离 0 太远”,这最终会导致数值不稳定的样本和较差的梯度计算(例如,梯度爆炸)。在实践中,位置根据下式计算
\[loc = tanh(loc / upscale) * upscale.\]可以通过关闭 tanh_loc 参数来禁用此行为(见下文)。
- 参数:
loc (torch.Tensor) – 正态分布位置参数
scale (torch.Tensor) – 正态分布 sigma 参数(方差的平方根)
upscale (torch.Tensor 或 number, 可选) –
公式中的 ‘a’ 缩放因子
\[loc = tanh(loc / upscale) * upscale.\]默认值为 5.0
min (torch.Tensor 或 number, 可选) – 分布的最小值。默认值 = -1.0;
max (torch.Tensor 或 number, 可选) – 分布的最大值。默认值 = 1.0;
tanh_loc (bool, 可选) – 如果
True
,则上述公式用于位置缩放,否则保留原始值。默认值为False
;
- property mode¶
返回分布的众数。