thuml / Time-Series-Library

A Library for Advanced Deep Time Series Models.
MIT License
6.27k stars 996 forks source link

Classification exp Error & torch version Error #496

Closed keruiwu closed 3 weeks ago

keruiwu commented 1 month ago

I downloaded the classification dataset and tried to run the TimesNet experiment on classification task, but had error that similar to issue #486. I tried to run the experiment in both OSX and Windows and set num_worker to be 1, but the error did not be resolved. Traceback (most recent call last):

File "run.py", line 189, in File "", line 1, in exp.train(setting) File "D:\tslib\Time-Series-Library-main\Time-Series-Library-main\exp\exp_classification.py", line 103, in train File "D:\anaconda\anaconda\envs\tslib\lib\multiprocessing\spawn.py", line 116, in spawn_main for i, (batch_x, label, padding_mask) in enumerate(train_loader): File "D:\anaconda\anaconda\envs\tslib\lib\site-packages\torch\utils\data\dataloader.py", line 352, in iter exitcode = _main(fd, parent_sentinel) File "D:\anaconda\anaconda\envs\tslib\lib\multiprocessing\spawn.py", line 126, in _main return self._get_iterator() File "D:\anaconda\anaconda\envs\tslib\lib\site-packages\torch\utils\data\dataloader.py", line 294, in _get_iterator self = reduction.pickle.load(from_parent) EOFError: Ran out of input return _MultiProcessingDataLoaderIter(self) File "D:\anaconda\anaconda\envs\tslib\lib\site-packages\torch\utils\data\dataloader.py", line 801, in init w.start() File "D:\anaconda\anaconda\envs\tslib\lib\multiprocessing\process.py", line 121, in start self._popen = self._Popen(self) File "D:\anaconda\anaconda\envs\tslib\lib\multiprocessing\context.py", line 224, in _Popen return _default_context.get_context().Process._Popen(process_obj) File "D:\anaconda\anaconda\envs\tslib\lib\multiprocessing\context.py", line 327, in _Popen return Popen(process_obj) File "D:\anaconda\anaconda\envs\tslib\lib\multiprocessing\popen_spawn_win32.py", line 93, in init reduction.dump(process_obj, to_child) File "D:\anaconda\anaconda\envs\tslib\lib\multiprocessing\reduction.py", line 60, in dump ForkingPickler(file, protocol).dump(obj) AttributeError: Can't pickle local object 'data_provider..'

My first guess is my torch version is 2.0.1. After reinstalled the requirements.txt, I had another error that torch.optim has no attribute RAdam. (The dataset error still exists after I comment the line that select the optimization)

Traceback (most recent call last): File "run.py", line 189, in exp.train(setting) File "D:\tslib\Time-Series-Library-main\Time-Series-Library-main\exp\exp_classification.py", line 93, in train model_optim = self._select_optimizer() File "D:\tslib\Time-Series-Library-main\Time-Series-Library-main\exp\exp_classification.py", line 40, in _select_optimizer model_optim = optim.RAdam(self.model.parameters(), lr=self.args.learning_rate) AttributeError: module 'torch.optim' has no attribute 'RAdam'

sqhsysu17 commented 1 month ago

It seems this is because torch1.7.1 doesnt support RAdam. You can use Adam instead. But I am not sure how it works on your dataset. It works ok on my task.

wuhaixu2016 commented 3 weeks ago

Many thanks for your answer @sqhsysu17