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** (张量) – 集束结束的布尔标志。如果没有提供,则默认为
done
。**rolling_gamma** (bool, 可选) –
如果为
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** (int) – 展开时间所在的维度。默认为 -2。
所有张量(值、奖励和完成)必须具有形状
[*Batch x TimeSteps x *F]
,其中*F
为特征维度。