VFS icon indicating copy to clipboard operation
VFS copied to clipboard

Tuple object is not callable

Open sahilmodi opened this issue 2 years ago • 1 comments

Hello,

I am trying to reproduce the training for resnet18 with the following command:

python tools/train.py configs/r18_sgd_cos_100e_r2_1xNx8_k400.py

but I receive the following error within mmaction:

...
2022-03-31 11:09:23,556 - mmaction - INFO - workflow: [('train', 1)], max: 100 epochs
2022-03-31 11:09:23,556 - mmaction - INFO - Checkpoints will be saved to /home/smodi9/cs598/VFS/work_dirs/r18_sgd_cos_100e_r2_1xNx8_k400 by HardDiskBackend.
Traceback (most recent call last):
  File "tools/train.py", line 181, in <module>
    main()
  File "tools/train.py", line 177, in main
    meta=meta)
  File "/home/smodi9/cs598/VFS/mmaction/apis/train.py", line 119, in train_model
    runner.run(data_loaders, cfg.workflow, cfg.total_epochs)
  File "/home/smodi9/miniconda3/envs/vfs/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 127, in run
    epoch_runner(data_loaders[i], **kwargs)
  File "/home/smodi9/miniconda3/envs/vfs/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 47, in train
    for i, data_batch in enumerate(self.data_loader):
  File "/home/smodi9/miniconda3/envs/vfs/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 517, in __next__
    data = self._next_data()
  File "/home/smodi9/miniconda3/envs/vfs/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1199, in _next_data
    return self._process_data(data)
  File "/home/smodi9/miniconda3/envs/vfs/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1225, in _process_data
    data.reraise()
  File "/home/smodi9/miniconda3/envs/vfs/lib/python3.7/site-packages/torch/_utils.py", line 429, in reraise
    raise self.exc_type(msg)
TypeError: Caught TypeError in DataLoader worker process 0.
Original Traceback (most recent call last):
  File "/home/smodi9/miniconda3/envs/vfs/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 202, in _worker_loop
    data = fetcher.fetch(index)
  File "/home/smodi9/miniconda3/envs/vfs/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/smodi9/miniconda3/envs/vfs/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp>
    data = [self.dataset[idx] for idx in possibly_batched_index]
  File "/home/smodi9/cs598/VFS/mmaction/datasets/dataset_wrappers.py", line 26, in __getitem__
    return self.dataset[idx % self._ori_len]
  File "/home/smodi9/cs598/VFS/mmaction/datasets/base.py", line 139, in __getitem__
    data = self.prepare_train_frames(idx)
  File "/home/smodi9/cs598/VFS/mmaction/datasets/base.py", line 119, in prepare_train_frames
    return self.pipeline(results)
  File "/home/smodi9/cs598/VFS/mmaction/datasets/pipelines/compose.py", line 41, in __call__
    data = t(data)
  File "/home/smodi9/cs598/VFS/mmaction/datasets/pipelines/augmentations.py", line 1315, in __call__
    img = np.array(trans(Image.fromarray(img)))
TypeError: 'tuple' object is not callable

I followed the instructions in the installation README and I believe the issue is caused by _ColorJitter.get_params(...) which returns a tuple. I am on Pytorch 1.8 and Torchvision 0.9.0.

Any help would be greatly appreciated!

sahilmodi avatar Mar 31 '22 16:03 sahilmodi

Hi @sahilmodi A quick fix would be use PyTorch 1.6 and corresponding torch vision.

I will create a PR to fix it later.

xvjiarui avatar Apr 01 '22 06:04 xvjiarui