快捷方式

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[原始碼]

定義每次呼叫時執行的計算。

所有子類都應重寫此方法。

注意

儘管前向傳播的實現需要在此函式中定義,但您應該在之後呼叫 Module 例項而不是此函式,因為前者會處理註冊的鉤子,而後者則會靜默忽略它們。

文件

訪問全面的 PyTorch 開發者文件

檢視文件

教程

為初學者和高階開發者提供深入的教程

檢視教程

資源

查詢開發資源並讓您的問題得到解答

檢視資源