reward2go¶
- class torchrl.objectives.value.functional.reward2go(reward, done, gamma, *, time_dim: int = - 2)[源代码]¶
计算给定多个轨迹和回合结束的奖励的折扣累积和。
- 参数:
reward (torch.Tensor) – 一个张量,包含在多个轨迹的每个时间步接收到的奖励。
done (Tensor) – 回合结束的布尔标志。与 truncated 不同,truncated 是回合未结束但被中断。
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]])