reward2go¶
- class torchrl.objectives.value.functional.reward2go(reward, done, gamma, *, time_dim: int = - 2)[原始碼]¶
計算給定多個軌跡和 episode 結束的折扣累積獎勵總和。
- 參數:
reward (torch.Tensor) – 一個張量,包含在多個軌跡中每個時間步收到的獎勵。
done (Tensor) – episode 結束的布林旗標。與 truncated 不同,truncated 指 episode 並未結束但被中斷。
gamma (float, optional) – 用於計算折扣累積獎勵總和的折扣因子。預設為 1.0。
time_dim (int) – 時間展開的維度。預設為 -2。
- 回傳:
- 一個形狀為 [B, T] 的張量,包含在每個時間步的折扣累積
獎勵總和 (reward-to-go)。
- 回傳類型:
範例
>>> reward = torch.ones(1, 10) >>> done = torch.zeros(1, 10, dtype=torch.bool) >>> done[:, [3, 7]] = True >>> reward2go(reward, done, 0.99, time_dim=-1) tensor([[3.9404], [2.9701], [1.9900], [1.0000], [3.9404], [2.9701], [1.9900], [1.0000], [1.9900], [1.0000]])