PyTorch - 神经网络 - 输出单个标量值

PyTorch - Neural Network - Output single scalar value

假设我们在 PyTorch 中有以下神经网络

seq_model = nn.Sequential(
nn.Linear(1, 13),
nn.Tanh(),
nn.Linear(13, 1))

具有以下输入张量

input = torch.tensor([1.0, 1.0, 5.0], dtype=torch.float32).unsqueeze(1)

我可以运行通过网络转发得到

seq_model(input)

tensor([[-0.0165],
        [-0.0165],
        [-0.2289]], grad_fn=<TanhBackward0>)

也许我也可以获得单个标量值作为输出,但我不确定如何获得。 谢谢你。我正在尝试使用这样的网络进行强化学习,并使用它 作为游戏板状态评估的价值函数逼近器。

输入的第一个维度代表小批量中的观察数量 (3),第二个维度代表特征数量 (1)。

如果要转发单个3d输入,必须修改网络(nn.Linear(1, 13)变为nn.Linear(3, 13)),并且必须删除input上的unsqueeze(1)。否则,您可以通过使用损失从它们计算单个标量来合并三个输出。