Я пытаюсь реализовать архитектуру U-NET для сегментации изображений, реализуя этап обрезки и объединения на расширенном пути, я не могу понять, как объединяется неравное количество каналов.
В соответствии с архитектурой вход с первого шага повышения частоты дискретизации должен быть объединен с соответствующим выходом из пути сокращения, но проблема заключается в том, что количество каналов в пути сокращения составляет 512, а после шага повышения частоты дискретизации — 1024, как они должны быть объединены. .Мой код для обрезки и конкатенации -
def crop_and_concat(self, upsampled, bypass, crop=False):
if crop:
c = (bypass.size()[2] - upsampled.size()[2]) // 2
bypass = F.pad(bypass, (-c, -c, -c, -c))
return torch.cat((upsampled, bypass), 1)
Ошибка, которую я получаю- RuntimeError: Given groups=1, weight of size 128 256 5 5, expected input[4, 384, 64, 64] to have 256 channels, but got 384 channels instead
Где я делаю неправильно?