快捷方式

DdpgMlpQNet

class torchrl.modules.DdpgMlpQNet(mlp_net_kwargs_net1: dict | None = None, mlp_net_kwargs_net2: dict | None = None, device: DEVICE_TYPING | None = None)[来源]

DDPG Q值 MLP 类。

在“CONTINUOUS CONTROL WITH DEEP REINFORCEMENT LEARNING”中提出,https://arxiv.org/pdf/1509.02971.pdf

DDPG Q值网络以观测和动作作为输入,并从中返回一个标量。由于动作的集成时间晚于观测,因此创建了两个网络。

参数:
  • mlp_net_kwargs_net1 (dict, optional) –

    MLP 的关键字参数。默认为

    >>> {
    ...     'in_features': None,
    ...     'out_features': 400,
    ...     'depth': 0,
    ...     'num_cells': [],
    ...     'activation_class': nn.ELU,
    ...     'bias_last_layer': True,
    ...     'activate_last_layer': True,
    ...     }
    

  • mlp_net_kwargs_net2

    默认为

    >>> {
    ...     'in_features': None,
    ...     'out_features': 1,
    ...     'depth': 1,
    ...     'num_cells': [300, ],
    ...     'activation_class': nn.ELU,
    ...     'bias_last_layer': True,
    ... }
    

  • device (torch.device, optional) – 创建模块的设备。

示例

>>> import torch
>>> from torchrl.modules import DdpgMlpQNet
>>> net = DdpgMlpQNet()
>>> print(net)
DdpgMlpQNet(
  (mlp1): MLP(
    (0): LazyLinear(in_features=0, out_features=400, bias=True)
    (1): ELU(alpha=1.0)
  )
  (mlp2): MLP(
    (0): LazyLinear(in_features=0, out_features=300, bias=True)
    (1): ELU(alpha=1.0)
    (2): Linear(in_features=300, out_features=1, bias=True)
  )
)
>>> obs = torch.zeros(1, 32)
>>> action = torch.zeros(1, 4)
>>> value = net(obs, action)
>>> print(value.shape)
torch.Size([1, 1])
forward(observation: Tensor, action: Tensor) Tensor[来源]

定义每次调用时执行的计算。

所有子类都应重写此方法。

注意

尽管 forward pass 的实现需要在该函数中定义,但应随后调用 Module 实例而不是该函数本身,因为前者负责运行已注册的钩子,而后者会默默地忽略它们。

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源