ROMP icon indicating copy to clipboard operation
ROMP copied to clipboard

使用最新代码训练出错

Open RedOrient opened this issue 3 years ago • 1 comments

您好,我使用旧版代码是可以正常训练的,但是使用最新代码就会有问题

config如下: v1.yml.txt

错误日志如下:

INFO:root:Training all layers.
Traceback (most recent call last):
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "E:\Git-Project\ROMP\ROMP-master\romp\train.py", line 164, in <module>
    main()
  File "E:\Git-Project\ROMP\ROMP-master\romp\train.py", line 161, in main
    trainer.train()
  File "E:\Git-Project\ROMP\ROMP-master\romp\train.py", line 34, in train
    self.train_epoch(epoch)
  File "E:\Git-Project\ROMP\ROMP-master\romp\train.py", line 84, in train_epoch
    for iter_index, meta_data in enumerate(self.loader):
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\site-packages\torch\utils\data\dataloader.py", line 359, in __iter__
    return self._get_iterator()
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\site-packages\torch\utils\data\dataloader.py", line 305, in _get_iterator
    return _MultiProcessingDataLoaderIter(self)
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\site-packages\torch\utils\data\dataloader.py", line 918, in __init__
    w.start()
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\multiprocessing\process.py", line 121, in start
    self._popen = self._Popen(self)
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\multiprocessing\context.py", line 224, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\multiprocessing\context.py", line 327, in _Popen
    return Popen(process_obj)
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\multiprocessing\popen_spawn_win32.py", line 93, in __init__
    reduction.dump(process_obj, to_child)
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\multiprocessing\reduction.py", line 60, in dump
    ForkingPickler(file, protocol).dump(obj)
AttributeError: Can't pickle local object 'H36M.<locals>.H36M'

(ROMP) E:\Git-Project\ROMP\ROMP-master>Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "D:\Software\AnacondaP\Install\envs\ROMP\lib\multiprocessing\spawn.py", line 126, in _main
    self = reduction.pickle.load(from_parent)
EOFError: Ran out of input

很奇怪,麻烦大佬看一下为什么会这样~

RedOrient avatar Jul 19 '22 16:07 RedOrient

这个报错,着实是看不出来什么。 我在本地测试没有遇到过这个问题。 但猜测可能是和新数据集的构建方式有关,我这里根据不同的类型,用不同的基类创建了数据集子类。 https://github.com/Arthur151/ROMP/blob/bafc86897c387caae125e7119b31dc30ee317bf0/romp/lib/dataset/h36m.py#L9

Arthur151 avatar Jul 20 '22 00:07 Arthur151