CUDNN_STATUS_MAPPING_ERROR при тренировке с pose2body - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь тренироваться https://github.com/NVIDIA/vid2vid. Я ...

  • ... выполняя в значительной степени ванильную параметризацию, показанную в файле readme, мне пришлось изменить количество графических процессоров и увеличить количество потоков для чтения набора данных. Команда:

    python train.py \ --name pose2body_256p \ --dataroot datasets/pose \ --dataset_mode pose \ --input_nc 6 \ --num_D 2 \ --resize_or_crop ScaleHeight_and_scaledCrop \ --loadSize 384 \ --fineSize 256 \ --gpu_ids 0,1 \ --batchSize 1 \ --max_frames_per_gpu 3 \ --no_first_img \ --n_frames_total 12 \ --max_t_step 4 \ --nThreads 6

  • ... обучение на поставляемых примерах наборов данных.

  • ... запуск докер-контейнера, созданного со сценариями в vid2vid/docker, e. г. с CUDA 9.0 и CUDNN 7.
  • ... с использованием двух графических процессоров NVIDIA V100.

Каждый раз, когда я начинаю тренироваться, сценарий вылетает через пару минут с сообщением RuntimeError: CUDNN_STATUS_MAPPING_ERROR. Полное сообщение об ошибке:

Traceback (most recent call last):
  File "train.py", line 329, in <module>
    train()
  File "train.py", line 104, in train
    fake_B, fake_B_raw, flow, weight, real_A, real_Bp, fake_B_last = modelG(input_A, input_B, inst_A, fake_B_last)            
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/modules/module.py", line 491, in __call__
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/parallel/data_parallel.py", line 114, in forward
    outputs = self.parallel_apply(replicas, inputs, kwargs)
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/parallel/data_parallel.py", line 124, in parallel_apply
    return parallel_apply(replicas, inputs, kwargs, self.device_ids[:len(replicas)])
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/parallel/parallel_apply.py", line 65, in parallel_apply
    raise output
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/parallel/parallel_apply.py", line 41, in _worker
    output = module(*input, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/modules/module.py", line 491, in __call__
    result = self.forward(*input, **kwargs)
  File "/vid2vid/models/vid2vid_model_G.py", line 130, in forward
    fake_B, fake_B_raw, flow, weight = self.generate_frame_train(netG, real_A_all, fake_B_prev, start_gpu, is_first_frame)        
  File "/vid2vid/models/vid2vid_model_G.py", line 175, in generate_frame_train
    fake_B_feat, flow_feat, fake_B_fg_feat, use_raw_only)
  File "/vid2vid/models/networks.py", line 171, in forward
    downsample = self.model_down_seg(input) + self.model_down_img(img_prev)
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/modules/module.py", line 491, in __call__
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/modules/container.py", line 91, in forward
    input = module(input)
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/modules/module.py", line 491, in __call__
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/torch/nn/modules/conv.py", line 301, in forward
    self.padding, self.dilation, self.groups)
RuntimeError: CUDNN_STATUS_MAPPING_ERROR

Из чтения проблем в vid2vid с использованием двух V100 следует работать с этой настройкой. Ошибка также возникает, если используются CUDA 8 / CUDNN 6. Я проверил флаги, но не нашел никаких указаний на дальнейшие необходимые изменения в аргументах, переданных train.py.

Любые идеи о том, как решить (или обойти) это?

1 Ответ

0 голосов
/ 10 ноября 2018

В случае, если кто-то решает ту же проблему: тренировка на картах P100 сработала. Похоже, что архитектура V100 конфликтует с версией pytorch, используемой в поставляемом Dockerfile в какой-то момент. Не совсем решение, но обходной путь.

...