【问题标题】:ValueError: Expected more than 1 value per channel when training in pytorch 1.8ValueError:在 pytorch 1.8 中训练时,每个通道的预期值超过 1 个
【发布时间】:2022-03-17 11:57:58
【问题描述】:

输入张量大小为[1, 512],我将其输入GroupNorm 层。

图层为self.fc_bn1 = nn.GroupNorm(512 // reduction, 512 // reduction),输入为x = self.fc_bn1(x)

错误在此图像中可见:

当我在 pytorch 1.1 中运行它时,它会起作用,但现在我有一台带有 pytorch 1.8 的机器,它不起作用。由于这台机器的 GPU 无法使用 pytorch 1.1,所以我想知道如何解决这个问题。

我已经设置了model.eval(),所以我猜不是这个原因。

【问题讨论】:

  • 从错误消息中,我只能猜测您使用的批量大小为 1,并且由于模型的 groupNorm 层,这不是有效的。您可以尝试增加批量大小
  • 感谢您的评论!我确实使用了一个批量大小。据说完全相同的代码可以在 pytorch 1.1 上运行。

标签: deep-learning pytorch normalization


【解决方案1】:

此代码在 pytorch1.1 中确实有效。但是我觉得这是个bug,因为GroupNorm之后的输出都是0,和数学公式是一致的。后续版本修复了这个bug,所以报错。

【讨论】:

    猜你喜欢
    • 2021-07-31
    • 2020-08-06
    • 2022-01-11
    • 2021-12-26
    • 2021-04-24
    • 1970-01-01
    • 2019-07-15
    • 1970-01-01
    • 2019-09-11
    相关资源
    最近更新 更多