you are assuming that
 for child in self.vgg_model.children():
        self.convs.append(child)   

will return layers in some kind of sequential order, that might or might not hold true. maybe that wrong assumption is the issue in your case.