Closed QiyaoWei closed 2 years ago
Hi, I'm sorry for the late reply. I kind of see what you are trying to do (get 2 labels instead of 1), but I don't know exactly how this would all work inside a whole few-shot learning setting (where class labels are transformed into integers in [0, 1, 2, 3, 4] for a 5-way classification task for example). Can you give more details about what is the expected behavior you want to see?
Hi Tristan,
That's all right, don't worry about it. We ended up re-writing the sampling function to achieve that :)
Hi all!
My question is as follows---what parts should I change if I want to load two ground truth labels instead of one? A concrete example is in addition to predicting the class of an input image, I also want to predict its attributes, like the paper "Attributes as Operators". I naively changed the label to be size 2 in "getitem", but received the following error. Thanks in advance for your help---
C:\Users\administered\anaconda3\envs\adj\python.exe E:/wqy/milab-fsl/baselines/protonet/train.py --download --train-data qiyao_test --test-data qiyao_test 0%| | 0/10000 [00:01<?, ?it/s] Traceback (most recent call last): File "E:/wqy/milab-fsl/baselines/protonet/train.py", line 258, in
for i_train_batch, train_batch in enumerate(pbar, int(global_task_count / args.batch_tasks) + 1):
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\tqdm\std.py", line 1178, in iter
for obj in iterable:
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data\dataloader.py", line 517, in next
data = self._next_data()
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data\dataloader.py", line 1199, in _next_data
return self._process_data(data)
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data\dataloader.py", line 1225, in _process_data
data.reraise()
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch_utils.py", line 429, in reraise
raise self.exc_type(msg)
RuntimeError: Caught RuntimeError in DataLoader worker process 0.
Original Traceback (most recent call last):
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data_utils\worker.py", line 202, in _worker_loop
data = fetcher.fetch(index)
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data_utils\fetch.py", line 47, in fetch
return self.collate_fn(data)
File "E:\wqy\milab-fsl\torchmeta\utils\data\dataloader.py", line 28, in call
return self.collate_fn([self.collate_task(task) for task in batch])
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data_utils\collate.py", line 73, in default_collate
return {key: default_collate([d[key] for d in batch]) for key in elem}
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data_utils\collate.py", line 73, in
return {key: default_collate([d[key] for d in batch]) for key in elem}
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data_utils\collate.py", line 83, in default_collate
return [default_collate(samples) for samples in transposed]
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data_utils\collate.py", line 83, in
return [default_collate(samples) for samples in transposed]
File "C:\Users\administered\anaconda3\envs\adj\lib\site-packages\torch\utils\data_utils\collate.py", line 55, in default_collate
return torch.stack(batch, 0, out=out)
RuntimeError: stack expects each tensor to be equal size, but got [18, 3, 84, 84] at entry 0 and [25, 3, 84, 84] at entry 1
Process finished with exit code 1