takumayagi / openmax-cifar10

A simple training/evaluation code of open set recognition using OpenMax (https://arxiv.org/abs/1511.06233)
51 stars 7 forks source link

Can't pickle local object 'normalize.<locals>.f' #2

Open RamyaRaghuraman opened 5 years ago

RamyaRaghuraman commented 5 years ago

Hi all and @takumayagi ,

I get the following error when I try to run:

For model selection

sh scripts/train_val.sh

`Train: 50000, Valid: 10000 Traceback (most recent call last): File "C:/Users/RAR7ABT/pj-val-ml/pjval_ml/OSR/openmax/main.py", line 49, in main() File "C:/Users/RAR7ABT/pj-val-ml/pjval_ml/OSR/openmax/main.py", line 22, in main train(opt, i) File "C:/Users/RAR7ABT/pj-val-ml/pjval_ml/OSR/openmax/main.py", line 35, in train train_loss, train_top1 = trainer.train(epoch) File "C:\Users\RAR7ABT\pj-val-ml\pjval_ml\OSR\openmax\train.py", line 27, in train for i, batch in enumerate(self.train_iter): File "C:\Users\RAR7ABT\AppData\Local\conda\conda\envs\test\lib\site-packages\chainer\iterators\multiprocess_iterator.py", line 149, in next self._prefetch_loop.launch_thread() File "C:\Users\RAR7ABT\AppData\Local\conda\conda\envs\test\lib\site-packages\chainer\iterators\multiprocess_iterator.py", line 433, in launch_thread initargs=(self.dataset, self.mem_size, self.mem_bulk)) File "C:\Users\RAR7ABT\AppData\Local\conda\conda\envs\test\lib\multiprocessing\context.py", line 119, in Pool context=self.get_context()) File "C:\Users\RAR7ABT\AppData\Local\conda\conda\envs\test\lib\multiprocessing\pool.py", line 174, in init self._repopulate_pool() File "C:\Users\RAR7ABT\AppData\Local\conda\conda\envs\test\lib\multiprocessing\pool.py", line 239, in _repopulate_pool w.start() File "C:\Users\RAR7ABT\AppData\Local\conda\conda\envs\test\lib\multiprocessing\process.py", line 105, in start self._popen = self._Popen(self) File "C:\Users\RAR7ABT\AppData\Local\conda\conda\envs\test\lib\multiprocessing\context.py", line 322, in _Popen return Popen(process_obj) File "C:\Users\RAR7ABT\AppData\Local\conda\conda\envs\test\lib\multiprocessing\popen_spawn_win32.py", line 65, in init reduction.dump(process_obj, to_child) File "C:\Users\RAR7ABT\AppData\Local\conda\conda\envs\test\lib\multiprocessing\reduction.py", line 60, in dump ForkingPickler(file, protocol).dump(obj) AttributeError: Can't pickle local object 'normalize..f'

Process finished with exit code 1 `

Any help would be appreciated. Thank you!

ghost commented 3 years ago

https://github.com/takumayagi/openmax-cifar10/blob/9d7ae83a8e1ca1692e15efcbed95b5058511ef2e/dataset.py#L134 On Windows platform, please use the SerialIterator instead of the MultiprocessIterator.