Ошибка RuntimeError: расширенный размер тензора (320) должен соответствовать существующему размеру (224) при не одноэлементном измерении 2

#python #pytorch #torchvision

#python #pytorch #torchvision

Вопрос:

Я пытаюсь обучить модель на базе данных UCF11 в PyTorch.

Я пытаюсь реализовать случайное увеличение выборок видеоданных.

 self.transforms_list = [transforms.ColorJitter(brightness=0.225),
                            transforms.ColorJitter(contrast=0.225),
                            transforms.ColorJitter(saturation=0.1),
                            transforms.ColorJitter(hue=0.1),
                            transforms.Grayscale(num_output_channels=3),
                            transforms.RandomHorizontalFlip(p=0.25),
                            transforms.RandomRotation(30.0),
                            transforms.GaussianBlur((5,5), sigma=(0.1, 2.0))]

transformations = random.sample(self.transforms_list,random.randint(1,8)) [transforms.RandomCrop(224)]
transformations = transforms.Compose(transformations)
 

Но когда я пытаюсь применить эти преобразования к каждому кадру видеоклипа, я получаю эту ошибку

 RuntimeError: The expanded size of the tensor (320) must match the existing size (224) at non-singleton dimension 2.  
Target sizes: [3, 240, 320].  Tensor sizes: [3, 224, 224]
 

Не могу понять, почему возникает эта ошибка. Я проверил исходный код, но не вижу причины возникновения этой ошибки.

Я создал пользовательский класс преобразования для RandomCrop, но все равно возникает та же ошибка.

Пожалуйста, помогите!!

Редактировать:

Поскольку вход представляет собой видео, вход имеет форму (T, C, H, W)

Я применял преобразования к каждому кадру в видео следующим образом

vid[i] = transformations(vid[i])

Создал новую переменную new_vid = [] и изменил код на

new_vid.append(transformations(vid[i]))

В конце, vid = torch.cat(new_vid,dim = 0)

Я получил видео с формой (T, 3,224,224)

Комментарии:

1. Где произошла ошибка? при torch.cat ? после RandomCrop того, как весь кадр должен иметь размер (3,224,224), это может произойти из-за того, что вы пытаетесь объединить кадр с другой формой

2. Например, @Mr …. Раньше я torch.cat создавал отдельный тензор. До этого я пытался присвоить обрезанный фрейм vid[i] , и это вызывало ошибку, потому что по ошибке он имел другую форму. Часть РЕДАКТИРОВАНИЯ — это то, как ошибка была решена.