td_lambda_return_estimate¶
- class torchrl.objectives.value.functional.td_lambda_return_estimate(gamma: float, lmbda: float, next_state_value: Tensor, reward: Tensor, done: Tensor, terminated: torch.Tensor | None = None, rolling_gamma: bool = None, *, time_dim: int = - 2)[source]¶
TD(\(\lambda\)) 回傳估計。
- 參數:
gamma (純量) – 指數平均折扣。
lmbda (純量) – 軌跡折扣。
next_state_value (Tensor) – 具有 new_state 輸入的值函數結果。
reward (Tensor) – 在環境中採取行動的獎勵。
done (Tensor) – 軌跡結束的布林標誌。
terminated (Tensor) – episode 結束的布林標誌。如果未提供,則預設為
done
。rolling_gamma (bool, optional) –
如果
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。
所有張量(values、reward 和 done)的形狀必須為
[*Batch x TimeSteps x *F]
,其中*F
為特徵維度。