在开始训练模型的时候,遇到了如下错误:

RuntimeError: Unable to find a valid cuDNN algorithm to run convolution

报错的大意是cuDNN不能运行所建立的模型,是一个cuda错误。这个错误十分常见,并且有多种原因造成。一种常见的情况就是训练时的损失函数使用了BCE(二元交叉熵)函数,此时输入损失函数的所有元素必须在0和1之间。但在建立模型时,没有对模型输出进行Sigmoid操作,因此损失函数输入不合法。另一种情况是batch_size过大导致爆显存了,清空显存后将batch_size或者num_workers调小即可。

对于此类错误,建议先将模型从显卡转移到CPU上:

model = model.to('cpu')

然后试着进行训练迭代,此时的报错便会直接指出错误根源,大大方便了查错。