我在 Windows 10 的 CPU 上运行一个 PyTorch 神经网络模型。批量大小设置为 42。在经过 67 次迭代后,发生了一件奇怪的事情:批量大小突然减少到 28,并且我收到了以下错误:
RuntimeError: Expected hidden[0] size (1, 28, 256), got (1, 42, 256)
回答:
数据集中的训练样本数量是否有可能不能被 42 整除?是否可能是剩余的数量是 28?
如果你的模型无法处理批量大小的在线更改,你应该考虑在 torch.utils.data.DataLoader
中设置 drop_last=True
,这样在训练过程中只会处理完整的批次。