class vggNet(nn.Module):
    def __init__(self, pretrained=True):
        super(vggNet, self).__init__() = models.vgg16(pretrained=True).features.eval()

    def forward(self, x):

        out = []
        for i in range(len(
            #x =[i](x)
            x =[i](x)
            #if i in [3, 8, 15, 22, 29]:
            #if i in [15]: #提取1,1/2,1/4的特征图
            if i in [8,15,22]: #提取1,1/2,1/4,1/8,1/16
                # print([i])
        return out

Some creepy feature extraction code I found attached to a research paper.


  • the "pretrained" parameter it's not actually used.
  • Just works (not so sure about that) with a vgg16, what if I want to use any other model?
  • They provided a spare copy of line 12, in case you lose one.
  • You can select a custom combination of layers by uncommenting the right if statement. A chinese explanation follows. Sometimes.
  • Why use pytorch hooks when you can write a 20+ lines class each time you need it?
By Baichuan Huang, 2021-05-21 19:21:58