快捷方式

DreamerActorLoss

class torchrl.objectives.DreamerActorLoss(*args, **kwargs)[源代码]

Dreamer Actor 损失。

计算 Dreamer actor 的损失。actor 损失计算为负的平均 lambda 回报。

参考: https://arxiv.org/abs/1912.01603

参数:
  • actor_model (TensorDictModule) – actor 模型。

  • value_model (TensorDictModule) – value 模型。

  • model_based_env (DreamerEnv) – 基于模型的环境。

  • imagination_horizon (int, 可选) – 模型展开的步数。默认为 15

  • discount_loss (bool, 可选) – 如果为 True,则损失会使用 gamma 折扣因子进行折算。默认为 False

default_keys

_AcceptedKeys 的别名

forward(tensordict: TensorDict) Tuple[TensorDict, TensorDict][源代码]

它旨在读取输入的 TensorDict 并返回另一个包含命名为“loss*”的损失键的 tensordict。

将损失分解为其组成部分,然后可以由训练器用于在整个训练过程中记录各种损失值。输出 tensordict 中存在的其他标量也将被记录。

参数:

tensordict – 包含计算损失所需值的输入 tensordict。

返回:

一个新的不带批处理维度(batch dimension)的 tensordict,其中包含各种将被命名为“loss*”的损失标量。损失以这个名称返回至关重要,因为它们将在反向传播(backpropagation)之前由训练器读取。

make_value_estimator(value_type: Optional[ValueEstimators] = None, **hyperparams)[源代码]

价值函数构造器。

如果需要非默认的价值函数,必须使用此方法构建。

参数:
  • value_type (ValueEstimators) – 一个 ValueEstimators 枚举类型,指示要使用的价值函数。如果未提供,将使用存储在 default_value_estimator 属性中的默认值。生成的价值估计器类将被注册到 self.value_type 中,以便将来进行细化。

  • **hyperparams – 用于价值函数的超参数。如果未提供,将使用 default_value_kwargs() 指示的值。

示例

>>> from torchrl.objectives import DQNLoss
>>> # initialize the DQN loss
>>> actor = torch.nn.Linear(3, 4)
>>> dqn_loss = DQNLoss(actor, action_space="one-hot")
>>> # updating the parameters of the default value estimator
>>> dqn_loss.make_value_estimator(gamma=0.9)
>>> dqn_loss.make_value_estimator(
...     ValueEstimators.TD1,
...     gamma=0.9)
>>> # if we want to change the gamma value
>>> dqn_loss.make_value_estimator(dqn_loss.value_type, gamma=0.9)

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题解答

查看资源