PyTorch - 无法使用带有线性的batchnorm1d

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (522)

BatchNorm1D在1-D张量上使用PyTorch 会产生错误:

RuntimeError:running_mean应包含1个元素而不是2304

什么可能是错的任何建议?

我的代码:

self.net_common = nn.Sequential (
    nn.Linear(64*64, 48*48),
    nn.BatchNorm1d(48*48),
    nn.Tanh(),
    nn.Dropout(p=0.25),
    nn.Linear(48*48, 32*32),
    nn.BatchNorm1d(32*32),
    nn.Tanh(),
)
提问于
用户回答回答于

您应该使用2D张量作为输入,因为BatchNorm1d使用迷你批次:

在2D或3D输入上应用批量标准化(一批1D输入和可选的附加通道尺寸)... 更多

您可以尝试torch.unsqueeze修复输入尺寸。更多

扫码关注云+社区

领取腾讯云代金券