Transformer-SSL icon indicating copy to clipboard operation
Transformer-SSL copied to clipboard

TypeError: 'Compose' object is not iterable

Open chenhaoxing opened this issue 4 years ago • 2 comments

Traceback (most recent call last): File "moby_linear.py", line 385, in main(config) File "moby_linear.py", line 174, in main train_one_epoch(config, model, criterion, data_loader_train, optimizer, epoch, mixup_fn, lr_scheduler) File "moby_linear.py", line 199, in train_one_epoch for idx, (samples, targets) in enumerate(data_loader): File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 435, in next data = self._next_data() File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1085, in _next_data return self._process_data(data) File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1111, in _process_data data.reraise() File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/_utils.py", line 428, in reraise raise self.exc_type(msg) TypeError: Caught TypeError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 198, in _worker_loop data = fetcher.fetch(index) File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/haoxing/Transformer-SSL/data/custom_image_folder.py", line 24, in getitem for t in self.transform: TypeError: 'Compose' object is not iterable

chenhaoxing avatar Jul 26 '21 06:07 chenhaoxing

Traceback (most recent call last): File "moby_linear.py", line 385, in main(config) File "moby_linear.py", line 174, in main train_one_epoch(config, model, criterion, data_loader_train, optimizer, epoch, mixup_fn, lr_scheduler) File "moby_linear.py", line 199, in train_one_epoch for idx, (samples, targets) in enumerate(data_loader): File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 435, in next data = self._next_data() File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1085, in _next_data return self._process_data(data) File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1111, in _process_data data.reraise() File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/_utils.py", line 428, in reraise raise self.exc_type(msg) TypeError: Caught TypeError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 198, in _worker_loop data = fetcher.fetch(index) File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/haoxing/.conda/envs/chx/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/haoxing/Transformer-SSL/data/custom_image_folder.py", line 24, in getitem for t in self.transform: TypeError: 'Compose' object is not iterable

maybe you can try return [transform] in build.py line142

xianxianY avatar Sep 10 '21 06:09 xianxianY

I change the code in "data/custom_image_folder.py" line 24-25

orignal code

if self.transform is not None:
            for t in self.transform:
                ret.append(t(image))
        else:
            ret.append(image)

changed code

if self.transform is not None:
    # for t in self.transform:
    ret.append(self.transform(image))
else:
    ret.append(image)

hucorz avatar Apr 10 '22 12:04 hucorz