Ошибка Conv3d в размерностях тензора 5d - PullRequest
0 голосов
/ 10 июля 2020

У меня есть тензор в форме ([5, 1, 3, 126, 126]), который представляет видео (5 кадров каждый 126x126 rgb). Мне нужно переслать его в

self.resnet = nn.Sequential(
        nn.Conv3d(5,5,1), 
        nn.UpsamplingBilinear2d(size=None, scale_factor=0.5)  
    )

, но я получаю

RuntimeError: Given groups=1, weight of size [5, 5, 1, 1, 1], expected input[5, 1, 3, 126, 126] to have 5 channels, but got 1 channels instead

Я думаю, что я, вероятно, неправильно понял, как работает conv3d, но я не могу понять, почему ожидаемые размеры настолько отличаются от тех, что были у моего 5d-тензора на тот момент

1 Ответ

0 голосов
/ 11 июля 2020

Причина, по которой это происходит, в том, что форма вашего тензора неправильная. Класс Conv3d ожидает, что сначала будет batch_size, затем количество каналов, затем количество кадров, затем высота и ширина. Вот почему вы получаете сообщение об ошибке. Вам следует изменить форму входного тензора на [5,3,1,126,126]. Параметры conv3d также неверны. Первое число должно быть количеством входных каналов, которые должен получить conv3d, который в вашем случае равен 3, потому что это изображение rgb. Второе число - это количество выходных каналов, изменять которое не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...