MCPcopy Create free account
hub / github.com/OpenGVLab/HumanBench / __init__

Method __init__

PATH/core/models/necks/simple_fpn.py:617–673  ·  view source on GitHub ↗
(self,
                 vis_token_dim,
                 mask_dim,
                 num_feature_levels,
                 backbone,  # placeholder
                 bn_group,
                 activation='gelu',
                 pixel_decoder_cfg=None)

Source from the content-addressed store, hash-verified

615
616class PedDetMoreSimpleFPN(SimpleFPN):
617 def __init__(self,
618 vis_token_dim,
619 mask_dim,
620 num_feature_levels,
621 backbone, # placeholder
622 bn_group,
623 activation='gelu',
624 pixel_decoder_cfg=None):
625 super(SimpleFPN, self).__init__()
626 self.embed_dim = backbone.embed_dim
627 self.mask_dim = mask_dim
628 self.vis_token_dim = vis_token_dim
629 self.pixel_decoder_cfg = pixel_decoder_cfg
630 self.backbone = [backbone]
631
632 fpn1 = nn.Sequential(
633 nn.ConvTranspose2d(self.embed_dim, self.embed_dim, kernel_size=2, stride=2),
634 Norm2d(self.embed_dim),
635 _get_activation(activation),
636 nn.ConvTranspose2d(self.embed_dim, self.vis_token_dim, kernel_size=2, stride=2),
637 # in compliance with decoder dim request
638 Norm2d(self.vis_token_dim),
639 )
640
641 fpn2 = nn.Sequential(
642 nn.ConvTranspose2d(self.embed_dim, self.vis_token_dim, kernel_size=2, stride=2),
643 # in compliance with decoder dim request
644 Norm2d(self.vis_token_dim),
645 )
646
647 fpn3 = nn.Sequential(
648 # in compliance with decoder dim request
649 nn.Conv2d(self.embed_dim, self.vis_token_dim, kernel_size=1, stride=1, padding=0),
650 Norm2d(self.vis_token_dim),
651 )
652
653 fpn4 = nn.Sequential(
654 nn.MaxPool2d(kernel_size=2, stride=2),
655 # in compliance with decoder dim request
656 nn.Conv2d(self.embed_dim, self.vis_token_dim, kernel_size=1, stride=1, padding=0),
657 Norm2d(self.vis_token_dim),
658 )
659
660 self.fpns = nn.ModuleList([fpn1, fpn2, fpn3, fpn4])
661
662 if self.pixel_decoder_cfg is None:
663 self.mask_features = nn.Conv2d(self.vis_token_dim, self.mask_dim, kernel_size=1, stride=1, padding=0)
664 c2_xavier_fill(self.mask_features)
665 else:
666 input_shape = {name: ShapeSpec(channels=self.vis_token_dim, stride=[4, 8, 16, 32][i])
667 for i, name in enumerate(["fpn1", "fpn2", "fpn3", "fpn4"])}
668 self.pixel_decoder = MSDeformAttnPixelDecoder(conv_dim=self.vis_token_dim,
669 input_shape=input_shape,
670 mask_dim=self.mask_dim,
671 **pixel_decoder_cfg)
672
673 self.maskformer_num_feature_levels = num_feature_levels # always use 3 scales
674

Callers

nothing calls this directly

Calls 5

c2_xavier_fillFunction · 0.90
ShapeSpecClass · 0.90
Norm2dClass · 0.70
_get_activationFunction · 0.70
__init__Method · 0.45

Tested by

no test coverage detected