Pytorch抽取网络层的Feature Map(Vgg)

这边我是需要得到图片在Vgg的5个block里relu后的Feature Map (其余网络只需要替换就可以了)
索引可以这样获得

vgg = models.vgg19(pretrained=True).features.eval()
print (vgg)

Feature Map可利用下面的class

class Vgg16(nn.Module):
    def __init__(self, pretrained=True):
        super(Vgg16, self).__init__()
        self.net = models.vgg16(pretrained).features.eval()
 
    def forward(self, x):
        out = []
        for i in range(len(self.net)):
            x = self.net[i](x)
            if i in [3, 8, 15, 22, 29]:
                # print(self.net[i])
                out.append(x
        return out

你可能感兴趣的:(python机器学习)