开始使用免费开始使用

策略网络架构

构建一个策略网络(Policy Network)的架构,之后可用于训练您的策略梯度智能体。

策略网络以状态作为输入,在动作空间中输出概率。对于 Lunar Lander 环境,您将处理 4 个离散动作,因此希望网络为每个动作各输出一个概率。

本练习是课程的一部分

Python 中的深度强化学习

查看课程

练习说明

  • 指定策略网络输出层的大小;为增强灵活性,请使用变量名而不是具体数字。
  • 确保最后一层返回概率。

交互式实操练习

通过完成这段示例代码来试试这个练习。

class PolicyNetwork(nn.Module):
  def __init__(self, state_size, action_size):
    super(PolicyNetwork, self).__init__()
    self.fc1 = nn.Linear(state_size, 64)
    self.fc2 = nn.Linear(64, 64)
    # Give the desired size for the output layer
    self.fc3 = nn.Linear(64, ____)

  def forward(self, state):
    x = torch.relu(self.fc1(torch.tensor(state)))
    x = torch.relu(self.fc2(x))
    # Obtain the action probabilities
    action_probs = ____(self.fc3(x), dim=-1)
    return action_probs
  
policy_network = PolicyNetwork(8, 4)
action_probs = policy_network(state)
print('Action probabilities:', action_probs)
编辑并运行代码