快捷方式

TanhNormal

class torchrl.modules.TanhNormal(loc: torch.Tensor, scale: torch.Tensor, upscale: Union[torch.Tensor, Number] = 5.0, low: Union[torch.Tensor, Number] = - 1.0, high: Union[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.Tensornumber) –

    公式中的 ‘a’ 縮放因子

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

  • low (torch.Tensornumber, 可選) – 分佈的最小值。 預設為 -1.0;

  • high (torch.Tensornumber, 可選) – 分佈的最大值。 預設為 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 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發人員的深入教程

檢視教程

資源

查詢開發資源並獲得問題的解答

檢視資源