在一维张量上使用PyTorch的{{1}}会产生错误:
RuntimeError:running_mean应该包含1个元素,而不是2304
关于什么可能有问题的任何建议?
我的代码:
BatchNorm1D
答案 0 :(得分:0)
您应该使用2D张量作为输入,因为BatchNorm1d
适用于迷你批处理:
在2D或3D输入上应用批处理归一化(1D输入的微型批处理,具有可选的附加通道尺寸)... More
您可以尝试torch.unsqueeze
来固定输入尺寸。 More
答案 1 :(得分:0)
https://pytorch.org/docs/stable/nn.html#torch.nn.BatchNorm1d
参数说明
num_features –来自大小为(N,C,L)的预期输入的C或大小为(N,L)的输入的L 我认为C表示通道,L表示数据长度,N表示批量大小。因此,如果您输入的形状是(N,C,L),也许C是1或3,则可以使用
···
nn.BatchNorm1d(1)
···
要进行测试,您可以使用以下代码:
m = nn.BatchNorm1d(1)
d = torch.randn(4, 1, 8)
output = m(d)