Pytorch 属性错误:';型号';对象没有属性';参数';

Pytorch 属性错误:';型号';对象没有属性';参数';,pytorch,resnet,Pytorch,Resnet,我正在使用一个经过修改的Resnet18,在Resnet的末尾有我自己的池功能 这是我的密码: resnet = resnet18().cuda() #a modified resnet class Model(): def __init__(self, model, pool): self.model = model self.pool= pool #my own pool class which has trainable layers d

我正在使用一个经过修改的Resnet18,在Resnet的末尾有我自己的池功能

这是我的密码:

resnet = resnet18().cuda() #a modified resnet

class Model():
    def __init__(self, model, pool):
        self.model = model
        self.pool= pool #my own pool class which has trainable layers

    def forward(self, sample):
        output = self.model(sample)
        output = self.pool(output)
        output = F.normalize(output, p=2, dim=1)
        return output
现在,显然我不仅需要训练resnet部分,还需要训练pool部分

但是,当我检查时:

model = Model(model=resnet, pool= pool)
print(list(model.parameters()))
它给出:

AttributeError: 'Model' object has no attribute 'parameters'

有人能帮忙吗?

您需要您的
模型
来继承
火炬.nn.模块

class Model(torch.nn.Module):
    def __init__(self, model, pool):
        super(Model, self).__init__()
        ...


哦,是的!正确的!您能告诉我如何分别打印resnet和pool的参数吗?
pool
resnet
本身就是模块,因此您可以简单地
打印(model.pool.parameters())
(与
resnet
相同)