错误:ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 256, 1, 1])
出现这个错误的根本原因是输入的数据只有一个数据点,但是BatchNorm操作必须超过一个数据计算平均值,可能的原因和解决方式如下:
如果在训练阶段出错:
把batch_size的值改为大于1的数
如果在测试阶段出错:
可能因为self.training=True 导致BatchNorm操作认为还在训练阶段
推理时将模型设置为推理的状态使self.training=False:
net = net.eval()