快捷方式

DistributionalDQNLoss

class torchrl.objectives.DistributionalDQNLoss(*args, **kwargs)[source]

一个分布式DQN损失类。

分布式DQN使用一个价值网络,该网络在折扣回报的离散支撑集上输出价值分布(与常规DQN不同,常规DQN的价值网络输出的是折扣回报的单个点预测)。

有关分布式DQN的更多详细信息,请参阅“强化学习的分布视角”(A Distributional Perspective on Reinforcement Learning),链接为https://arxiv.org/pdf/1707.06887.pdf

参数:
  • value_network (DistributionalQValueActornn.Module) – 分布式Q价值算子。

  • gamma (标量) –

    回报计算的折扣因子。..注意

    Unlike :class:`DQNLoss`, this class does not currently support
    custom value functions. The next value estimation is always
    bootstrapped.
    

  • delay_value (布尔值) – 是否将价值网络复制到一个新的目标价值网络以创建双重DQN(double DQN)

  • priority_key (字符串, 可选) – [已弃用,请改用 .set_keys(priority_key=priority_key)] 在添加到此 ReplayBuffer 的 TensorDict 中,假定优先级存储在该键下。这应在采样器类型为 PrioritizedSampler 时使用。默认为 "td_error"

  • reduction (字符串, 可选) – 指定应用于输出的归约方式:"none" | "mean" | "sum""none": 不应用归约,"mean": 输出的总和将除以输出元素的数量,"sum": 输出将被求和。默认值:"mean"

default_keys

_AcceptedKeys 的别名

forward(input_tensordict: TensorDictBase) TensorDict[source]

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

将损失分解到其组成部分后,训练器就可以在训练过程中记录各种损失值。输出 tensordict 中存在的其他标量也会被记录。

参数:

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

返回:

一个没有批量维度的新 tensordict,其中包含各种损失标量,这些标量将命名为“loss*”。损失必须以此名称返回,因为它们将在反向传播前由训练器读取,这一点至关重要。

make_value_estimator(value_type: Optional[ValueEstimators] = None, **hyperparams)[source]

价值函数构造器。

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

参数:
  • 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全面的开发者文档

查看文档

教程

获取适合初学者和高级开发者的深度教程

查看教程

资源

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

查看资源