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)
。否则,您可以通过使用损失从它们计算单个标量来合并三个输出。
假设我们在 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)
。否则,您可以通过使用损失从它们计算单个标量来合并三个输出。