【问题标题】:PyTorch - Neural Network - Output single scalar valuePyTorch - 神经网络 - 输出单个标量值
【发布时间】:2022-02-28 03:34:47
【问题描述】:

假设我们在 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>)

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

【问题讨论】:

    标签: deep-learning pytorch reinforcement-learning


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,您关于如何设置输入/特征大小的提示有助于正确输入。关于有一个输出值,而不是使用平均值,最后一层输出一个带有一个元素的张量。
    猜你喜欢
    • 2018-12-16
    • 1970-01-01
    • 2021-03-25
    • 2014-07-05
    • 2021-10-10
    • 2015-02-23
    • 2021-03-11
    • 2019-03-08
    相关资源
    最近更新 更多