Ошибка при обучении 3DCNN, связанная с небольшим размером пакета (PyTorch) - PullRequest
0 голосов
/ 29 апреля 2020

Я тренирую модель глубокого обучения (3DCNN) в PyTorch. Кажется, что это хорошо работает, кроме некоторых проблем, которые у меня возникают с размером партии.

При размере партии 128, тренировка проходит нормально (10 эпох).

Однако, если я уменьшу размер пакета до 64 или ниже, он заканчивается через 5 эпох со следующей трассировкой. Я не понимаю, поскольку процедура для каждой эпохи в значительной степени одинакова, поэтому не следует вести себя по-разному в каждой эпохе.

Есть идеи относительно того, что может вызвать это?

Я работает на 4 графических процессорах в кластере HP C. Извините, я не могу поделиться кодом.

Traceback (most recent call last):
  File "junin-3DCNN.mem.parallel.py", line 245, in <module>
    path = modelpath)
  File "/project/junin/deforestation_forecasting/python_code/Training.py", line 118, in train_model
    output = model.forward(data, sigmoid = not require_sigmoid)    
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 152, in forward
    outputs = self.parallel_apply(replicas, inputs, kwargs)
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 162, in parallel_apply
    return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)])
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 85, in parallel_apply
    output.reraise()
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/_utils.py", line 369, in reraise
    raise self.exc_type(msg)
ValueError: Caught ValueError in replica 0 on device 0.
Original Traceback (most recent call last):
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/parallel/parallel_apply.py", line 60, in _worker
    output = module(*input, **kwargs)
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in __call__
    result = self.forward(*input, **kwargs)
  File "/project/junin/deforestation_forecasting/python_code/ConvRNN.py", line 522, in forward
    x= self.ln(x)
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/modules/container.py", line 92, in forward
    input = module(input)
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in __call__
    result = self.forward(*input, **kwargs)
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/modules/batchnorm.py", line 81, in forward
    exponential_average_factor, self.eps)
  File "/home/anaconda3/envs/py37-2/lib/python3.7/site-packages/torch/nn/functional.py", line 1652, in batch_norm
    raise ValueError('Expected more than 1 value per channel when training, got input size {}'.format(size))
ValueError: Expected more than 1 value per channel when training, got input size torch.Size([1, 100])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...