捷徑

TanhNormal

class torchrl.modules.TanhNormal(loc: Tensor, scale: Tensor, upscale: Union[Tensor, Number] = 5.0, low: Union[Tensor, Number] = - 1.0, high: Union[Tensor, Number] = 1.0, event_dims: Optional[int] = None, tanh_loc: bool = False, safe_tanh: bool = True, **kwargs)[source]

實現具有位置縮放的 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, optional) – 分佈的最小值。預設值為 -1.0;

  • high (torch.Tensornumber, optional) – 分佈的最大值。預設值為 1.0;

  • event_dims (int, optional) – 描述動作的維度數量。預設值為 1。將 event_dims 設定為 0 將導致與輸入具有相同形狀的對數機率,1 將縮減(加總)最後一個維度,2 則縮減最後兩個維度,依此類推。

  • tanh_loc (bool, optional) – 如果 True,則上述公式用於位置縮放,否則保留原始值。預設值為 False;

  • safe_tanh (bool, optional) – 如果 True,Tanh 轉換會「安全地」完成,以避免數值溢位。這目前會與 torch.compile() 發生衝突。

get_mode()[原始碼]

使用 Adam 優化器計算模式的估計值。

property mean

傳回分佈的平均值。

property mode

傳回分佈的模式。

property support

傳回一個 Constraint 物件,代表此分佈的支援度。

文件

存取 PyTorch 的完整開發人員文件

檢視文件

教學

取得初學者和高級開發人員的深入教學課程

檢視教學

資源

尋找開發資源並取得問題的解答

檢視資源