ValueError: Expected more than 1 value per channel when training, got input size [1, 16, 1, 1](解决方案)

在使用pytorch训练模型时,遇到下面的错误:

ValueError: Expected more than 1 value per channel when training, got input size [1, 16, 1, 1]

如图所示:
在这里插入图片描述
出现这个错误可能有两个原因:

1.输入批次只有一个数据点,而由于BatchNorm操作必须要多于一个数据去计算平均值,如把batch_size的值改为大于1的数

如图举例所示:
在这里插入图片描述
2.如果batch_size的值是大于1的还出现这个错误,可能是数据集的总数除以batch_size的值不能整除,即多余的数据不够一个批次。我们可以在dataloader中把drop_last 参数设置为True,这样dataloader就会舍去批次中多余的部分

如图举例所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/thy0000/article/details/123435996