对于这个问题,有几种情况,一说是显卡炸了,关闭一些实验性功能即可;
还有说是因为输入了空向量,这个不大应该吧。
我昨天遇到了这个报错,背景是用了交叉验证,代码多次精确的在第二个epoch的最后一个batch报错,我分析是最后一个batch样本数不完整,这点可以通过总批次乘以单个批次样本个数是否等于总样本数来判断,在数据加载器部分调试输出加载器形状即可。因此我猜测是批次不完整导致了报错,就给交叉验证的剩余不完整批次丢弃了,如标红部分。就不报错了。
原因引自花书,在于批量规范化层(batch normalization)需要在完整小批量上执行,而不是像其他层一样可以忽略批量。一个批次只存在一个样本或者不完整的样本个数会报错。
train_loader = DataLoader(train_subset, batch_size=BATCH_SIZE, shuffle=True,drop_last=True)
val_loader = DataLoader(val_subset, batch_size=BATCH_SIZE, shuffle=False,drop_last=True)
pytorch 报错:RuntimeError: CUDA error: invalid configuration argument
于 2024-08-06 15:45:22 首次发布