Как разделить модель Resnet50 на две части, а затем обучить данные по порядку в pytorch? - PullRequest
0 голосов
/ 17 июня 2020

Я попытался получить промежуточную карту характеристик предварительно обученной модели 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 они связаны друг с другом и между ними нет разрыва. Кто-нибудь может мне с этим помочь? Как исправить код?

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