reward2go¶
- class torchrl.objectives.value.functional.reward2go(reward, done, gamma, *, time_dim: int = - 2)[source]¶
计算给定多个轨迹和剧集结束时的奖励的折扣累积和。
- 参数:
reward (torch.Tensor) – 包含在多个轨迹上每个时间步长获得的奖励的张量。
done (张量) – 剧集结束的布尔标志。与截断不同,截断是指剧集未结束但被中断。
gamma (float, 可选) – 用于计算奖励的折扣累积和的折扣因子。默认为 1.0。
time_dim (int) – 时间展开的维度。默认为 -2。
- 返回值:
- 形状为 [B, T] 的张量,包含每个时间步长的奖励的折扣累积
和(奖励到期)。
- 返回类型:
示例
>>> 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]])