CUDNN Ошибка в backprop для больших партий
Я реализовал комбинацию 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 в обратном направлении, сам не реализовал никакого обратного метода.