td1_advantage_estimate¶
- class torchrl.objectives.value.functional.td1_advantage_estimate(gamma: float, state_value: torch.Tensor, next_state_value: torch.Tensor, reward: torch.Tensor, done: torch.Tensor, terminated: torch.Tensor | None = None, rolling_gamma: bool = None, time_dim: int = - 2)[源]¶
TD(1) 優勢估計。
- 引數:
gamma (標量) – 指數平均折扣。
state_value (Tensor) – 輸入舊狀態 (old_state) 的值函式結果。
next_state_value (Tensor) – 輸入新狀態 (new_state) 的值函式結果。
reward (Tensor) – 在環境中採取行動的獎勵。
done (Tensor) – 表示軌跡結束的布林標誌。
terminated (Tensor) – 表示幕 (episode) 結束的布林標誌。如果未提供,預設為
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是特徵維度。