anyuexuan / CSS

Code for "Conditional Self-Supervised Learning for Few-Shot Classification" in IJCAI 2021.
Other
21 stars 3 forks source link

_pickle.PicklingError: Can't pickle <function <lambda> #4

Open Vanguitar opened 1 year ago

Vanguitar commented 1 year ago

There is a problem:
" Start pre-training! Traceback (most recent call last): File "./CSS-main/run_css.py", line 174, in pre_train() File "./CSS-main/run_css.py", line 56, in pre_train model.pre_train_loop(pre_epoch, base_loader, optimizer) # model are called by reference, no need to return File ".\CSS-main\methods\CSS.py", line 81, in pre_trainloop for i, (x, ) in enumerate(train_loader): File "D:\anaconda3\envs\pytorch\lib\site-packages\torch\utils\data\dataloader.py", line 355, in iter return self._get_iterator() File "D:\anaconda3\envs\pytorch\lib\site-packages\torch\utils\data\dataloader.py", line 301, in _get_iterator return _MultiProcessingDataLoaderIter(self) File "D:\anaconda3\envs\pytorch\lib\site-packages\torch\utils\data\dataloader.py", line 914, in init w.start() File "D:\anaconda3\envs\pytorch\lib\multiprocessing\process.py", line 112, in start self._popen = self._Popen(self) File "D:\anaconda3\envs\pytorch\lib\multiprocessing\context.py", line 223, in _Popen return _default_context.get_context().Process._Popen(process_obj) File "D:\anaconda3\envs\pytorch\lib\multiprocessing\context.py", line 322, in _Popen return Popen(process_obj) File "D:\anaconda3\envs\pytorch\lib\multiprocessing\popen_spawn_win32.py", line 89, in init reduction.dump(process_obj, to_child) File "D:\anaconda3\envs\pytorch\lib\multiprocessing\reduction.py", line 60, in dump ForkingPickler(file, protocol).dump(obj) _pickle.PicklingError: Can't pickle <function at 0x000002B97ABE4168>: attribute lookup on data.dataset failed

Process finished with exit code 1 " my torch is 1.8.1, could you help me to check the issue?

anyuexuan commented 1 year ago

I believe you ran it on Windows. For now, Pytorch's support for multi-processing on Windows is very patchy. You can try it on Linux or MacOS.