今天使用pytorch对模型加载,出现了ValueError: Expected more than 1 value per channel when training, got input size[1,x,1,1]问题。
按字面理解就是训练时,期望每个通道上超过1个值。
当我们在dataloader时,batch_size划分到最后,余数为1时, 我们输入大小在变换过程中成为了(1, num_channel, 1, 1)。 此时,如果计算batch Norm时, 它仅含有1个值。 即图中的一个小立方块。就无法计算均值、方差,所以会出错。
解决方案: 在DataLoader中设置drop_last = True
,或者自己重新调整batch_size的大小。