Я попытался получить промежуточную карту характеристик предварительно обученной модели Resnet50 в pytorch. Так мне понравилось:
resnet50_model = torchvision.models.resnet50(pretrained=True)
x = torch.ones(16, 3, 224, 224)
m0 = nn.Sequential(*list(resnet50_model.children())[:5])
m1 = nn.Sequential(*list(resnet50_model.children())[5:])
x1 = m0(x)
x2 = m1(x1)
# Do something with x1
Но затем программа пожаловалась, что:
RuntimeError: size mismatch, m1: [32768 x 1], m2: [2048 x 1000] at /pytorch/aten/src/TH/generic/THTensorMath.cpp:41
Ошибка возникает из-за того, что форма x1
несовместима с m1()
. Но в Resnet50 они связаны друг с другом и между ними нет разрыва. Кто-нибудь может мне с этим помочь? Как исправить код?