2

我实现了 MLP、RNN、CNN 的组合。批量大小为 420 时,一切似乎都运行良好(也就是我没有收到任何错误)。但是,一旦我将批次增加到 840,我就会收到以下错误:

Traceback (most recent call last):
  File "train_cnn_rnn.py", line 152, in <module>
    loss.backward()
  File "/home/tbaumgae/.local/lib/python3.5/site-packages/torch/autograd/variable.py", line 146, in backward
    self._execution_engine.run_backward((self,), (gradient,), retain_variables)
RuntimeError: CUDNN_STATUS_NOT_SUPPORTED. This error may appear if you passed in a non-contiguous input.

向前传球似乎工作正常。我检查所有变量是否连续并且它们是连续的。此外,我对损失计算的预测和目标是连续的,而且返回的损失也是连续的。但是随后在调用时会发生此错误backward()。任何想法为什么会发生这种情况?

CUDA 版本 8.0.61

Python 3.5.2

评论摘要:

  • 一个序列中有 210 张图像,因此,我的批量大小为 210 步。每个图像的形状为[3, 250, 250].
  • 我正在向后使用 PyTorch,我自己还没有实现任何向后的方法。
4

0 回答 0