почему torchvision.models.ale xnet () не работает при тестировании ввода и вывода? - PullRequest
0 голосов
/ 19 марта 2020

Код здесь:

import torch
from torchvision.models import alexnet

if __name__ == "__main__":
    net = alexnet()
    x = torch.rand((1, 3, 224, 224))

    for name, layer in net.named_children():
        x = layer(x)
        print(name, ' output shape:\t', x.shape)

Вывод здесь:

features  output shape:  torch.Size([1, 256, 6, 6])
avgpool  output shape:   torch.Size([1, 256, 6, 6])

File "AlexNet.py", line 9, in <module>
    x = layer(x)
RuntimeError: size mismatch, m1: [1536 x 6], m2: [9216 x 4096]

Я хочу проверить вход и выход эля xNet, но мне не удалось с ошибка "несоответствие размера". Я использую размер изображения (3,224,224), представленный в статье Ale xNet, и хочу получить правильный вывод. После этой ошибки я пытаюсь исправить

self.avgpool = nn.AdaptiveAvgPool2d((6, 6))

до

self.avgpool = nn.AdaptiveAvgPool2d((1, 9216))

, и я получаю правильный вывод.

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

thx за вашу помощь!

1 Ответ

0 голосов
/ 20 марта 2020

Я решил эту проблему. Таким образом я пропустил код x = torch.flatten(x, 1) код

for name, layer in net.named_children():
    x = layer(x)
    print(name, ' output shape:\t', x.shape)

спасибо за вашу помощь!

...