У объекта dict pytorch.load () нет атрибута 'features' - PullRequest
0 голосов
/ 27 февраля 2019
    import torch
    import torch.nn as nn
    from torch.autograd import Variable
    import torchvision.models as models

    class AlexSal(nn.Module):
        def __init__(self):
            super(AlexSal, self).__init__()
            self.features = nn.Sequential(*list(torch.load('alexnet_places365.pth.tar').features.children())[:-2])
            self.relu = nn.ReLU()
            self.sigmoid = nn.Sigmoid()
            self.conv6 = nn.Conv2d(256, 1, kernel_size=(1, 1), stride=(1, 1))

        def forward(self, x):
            x = self.relu(self.features(x))
            x = self.sigmoid(self.conv6(x))
            x = x.squeeze(1)
            return x
    model = AlexSal().cuda()

Traceback (most recent call last):
  File "main.py", line 23, in <module>
    model = AlexSal().cuda()
  File "main.py", line 13, in __init__
    self.features = nn.Sequential(*list(torch.load('alexnet_places365.pth.tar').features.children())[:-2])
AttributeError: 'dict' object has no attribute 'features'

Я получил этот фрагмент кода из Интернета, я скачал alexnet_places365.pth.tar, и когда я запускаю его, он показывает вышеуказанную ошибку

1 Ответ

0 голосов
/ 27 февраля 2019

Похоже, что torch.load('alexnet_places365.pth.tar') не содержит объект с членом features, но вместо этого указывается состояние, как описано здесь .

Я бы предложил вам распечатать результатtorch.load('alexnet_places365.pth.tar'), а затем найдите запись features.

...