vec_td1_return_estimate¶
- class torchrl.objectives.value.functional.vec_td1_return_estimate(gamma, next_state_value, reward, done: torch.Tensor, terminated: torch.Tensor | None = None, rolling_gamma: Optional[bool] = None, time_dim: int = - 2)[来源]¶
矢量化 TD(1) 回报估计。
- 参数:
gamma (标量, 张量) – 指数平均折扣。如果是张量值,
next_state_value (张量) – 使用 new_state 输入的值函数结果。
reward (张量) – 在环境中执行动作获得的奖励。
done (张量) – 表示轨迹结束的布尔标志。
terminated (张量) – 表示 episode 结束的布尔标志。如果未提供,默认为
done
。rolling_gamma (布尔值, 可选) –
如果为
True
,则假设 gamma 张量的每个 gamma 值都与单个事件相关联>>> gamma = [g1, g2, g3, g4] >>> value = [v1, v2, v3, v4] >>> return = [ ... v1 + g1 v2 + g1 g2 v3 + g1 g2 g3 v4, ... v2 + g2 v3 + g2 g3 v4, ... v3 + g3 v4, ... v4, ... ]
如果为
False
,则假设每个 gamma 值都与即将到来的轨迹相关联>>> gamma = [g1, g2, g3, g4] >>> value = [v1, v2, v3, v4] >>> return = [ ... v1 + g1 v2 + g1**2 v3 + g**3 v4, ... v2 + g2 v3 + g2**2 v4, ... v3 + g3 v4, ... v4, ... ]
默认值为
True
。time_dim (整型) – 时间维度展开的维度。默认为
-2
。
所有张量(values、reward 和 done)必须具有形状
[*Batch x TimeSteps x *F]
,其中*F
为特征维度。