svip-lab / impersonator

PyTorch implementation of our ICCV 2019 paper: Liquid Warping GAN: A Unified Framework for Human Motion Imitation, Appearance Transfer and Novel View Synthesis
https://svip-lab.github.io/project/impersonator
Other
1.72k stars 317 forks source link

pickle.load?win10 #3

Closed GoooIce closed 4 years ago

GoooIce commented 4 years ago

win10 64 python373

what i run:

python run_imitator.py --gpu_ids 0 --model imitator --output_dir ./outputs/results/ --src_path ./assets/src_imgs/internet/men1_256.jpg --tgt_path ./assets/samples/ref_imgs/024_8_2 --has_detector --post_tune --front_warp --save_res

Traceback

(most recent call last): File "run_imitator.py", line 225, in adaptive_personalize(test_opt, imitator, visualizer) File "run_imitator.py", line 209, in adaptive_personalize imitator.post_personalize(opt.output_dir, loader, visualizer=None, verbose=False) File "J:\impersonator\models\imitator.py", line 423, in post_personalize for i, sample in enumerate(data_loader): File "C:\Users\goooice\Anaconda3\envs\ml\lib\site-packages\torch\utils\data\dataloader.py", line 278, in iter return _MultiProcessingDataLoaderIter(self) File "C:\Users\goooice\Anaconda3\envs\ml\lib\site-packages\torch\utils\data\dataloader.py", line 682, in init w.start() File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\process.py", line 112, in start self._popen = self._Popen(self) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\context.py", line 223, in _Popen return _default_context.get_context().Process._Popen(process_obj) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\context.py", line 322, in _Popen return Popen(process_obj) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\popen_spawn_win32.py", line 89, in init reduction.dump(process_obj, to_child) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\reduction.py", line 60, in dump ForkingPickler(file, protocol).dump(obj) _pickle.PicklingError: Can't pickle <class 'main.MetaCycleDataSet'>: attribute lookup MetaCycleDataSet on main failed


Traceback (most recent call last): File "", line 1, in File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\spawn.py", line 105, in spawn_main exitcode = _main(fd) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\spawn.py", line 115, in _main self = reduction.pickle.load(from_parent) EOFError: Ran out of input

GoooIce commented 4 years ago

I tried python demo_imitator.py --gpu_ids 0 , and I can run it with imitator.personalize.

edit demo_imitator.py:48

if test_opt.post_tune:

#     adaptive_personalize(test_opt, imitator, visualizer=None)
# else:
#     imitator.personalize(test_opt.src_path, visualizer=None)
imitator.personalize(test_opt.src_path, visualizer=None)
JinglUO703 commented 4 years ago

win10 64 python373

what i run:

python run_imitator.py --gpu_ids 0 --model imitator --output_dir ./outputs/results/ --src_path ./assets/src_imgs/internet/men1_256.jpg --tgt_path ./assets/samples/ref_imgs/024_8_2 --has_detector --post_tune --front_warp --save_res

Traceback

(most recent call last): File "run_imitator.py", line 225, in adaptive_personalize(test_opt, imitator, visualizer) File "run_imitator.py", line 209, in adaptive_personalize imitator.post_personalize(opt.output_dir, loader, visualizer=None, verbose=False) File "J:\impersonator\models\imitator.py", line 423, in post_personalize for i, sample in enumerate(data_loader): File "C:\Users\goooice\Anaconda3\envs\ml\lib\site-packages\torch\utils\data\dataloader.py", line 278, in iter return _MultiProcessingDataLoaderIter(self) File "C:\Users\goooice\Anaconda3\envs\ml\lib\site-packages\torch\utils\data\dataloader.py", line 682, in init w.start() File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\process.py", line 112, in start self._popen = self._Popen(self) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\context.py", line 223, in _Popen return _default_context.get_context().Process._Popen(process_obj) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\context.py", line 322, in _Popen return Popen(process_obj) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\popen_spawn_win32.py", line 89, in init reduction.dump(process_obj, to_child) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\reduction.py", line 60, in dump ForkingPickler(file, protocol).dump(obj) _pickle.PicklingError: Can't pickle <class 'main.MetaCycleDataSet'>: attribute lookup MetaCycleDataSet on main failed

Traceback (most recent call last): File "", line 1, in File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\spawn.py", line 105, in spawn_main exitcode = _main(fd) File "C:\Users\goooice\Anaconda3\envs\ml\lib\multiprocessing\spawn.py", line 115, in _main self = reduction.pickle.load(from_parent) EOFError: Ran out of input

Solve in run_imitator.py ???

GoooIce commented 4 years ago

Solve in run_imitator.py ???

yes, same like demo_imitator.py

piaozhx commented 4 years ago

@GoooIce @JinglUO703 Just using imitator.personalize instead of adaptive_personalize may get worse result. The pickle problem is caused by multiprocessing of windows, you can solve it by #12