МОДЕЛЬ ChainerCV SSD512 не обучается

#python-3.x #object-detection #chainercv

#python-3.x #обнаружение объекта #chainercv

Вопрос:

Я использовал SSD300 (предварительно обученную модель imagenet) для обнаружения и распознавания для классификации двух классов: [Баскетбол-ChainerCV] (https://github.com/atom2k17/Basketball-ChainerCV/blob/master/basketballproject.py ). Обучение и прогнозы хороши. Но когда я использую SSD512 (предварительно подготовленную модель imagenet) во время обучения, я получаю следующую ошибку:

 /usr/local/lib/python3.6/dist- 
packages/chainer/functions/connection/convolution_2d.py in 
_forward_cudnn(self, x, W, b, y)
226         cuda.cudnn.convolution_forward(
227             x, W, b, y, pad, stride, dilation, self.groups,
228             auto_tune=auto_tune, tensor_core=tensor_core)
229         return y,
230 
cupy/cudnn.pyx in cupy.cudnn.convolution_forward()
cupy/cudnn.pyx in cupy.cudnn._find_algorithm_fwd()
cupy/cuda/memory.pyx in cupy.cuda.memory.alloc()
cupy/cuda/memory.pyx in cupy.cuda.memory.MemoryPool.malloc()
cupy/cuda/memory.pyx in cupy.cuda.memory.MemoryPool.malloc()
cupy/cuda/memory.pyx in cupy.cuda.memory.SingleDeviceMemoryPool.malloc()
cupy/cuda/memory.pyx in cupy.cuda.memory.SingleDeviceMemoryPool._malloc()
cupy/cuda/memory.pyx in cupy.cuda.memory._try_malloc()
OutOfMemoryError: out of memory to allocate 1073741824 bytes (total 
12092240384 bytes)
  

Я использую среду графического процессора Google Colab. Приветствуются любые указания на решение этой проблемы.

Комментарии:

1. Это ошибка нехватки памяти, вы пытались уменьшить размер пакета или как насчет уменьшения размера входного изображения??

2. Привет @corochann.. Я уменьшил размер пакета с 32 до 4.My размер изображения такой, какой он есть -320 * 240 .. но во время обучения потери отображаются как nan, а проверка — как 0. Это все еще проблема с памятью?

3. Нет, это другая проблема. Я предполагаю, что исходный вопрос решен. Когда потеря обучения достигает nan, пожалуйста, проверьте, что входные данные не содержат значения nan, а диапазон входных данных правильно масштабирован.

Ответ №1:

Как было предложено в комментариях @corochann, эта проблема с памятью решена, когда trainer.run() был выполнен, приняв batch_size равным 4 из 32. Поэтому решением здесь было использование меньшего размера пакета.