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

Method __init__

PATH/core/models/necks/simple_fpn.py:449–498  ·  view source on GitHub ↗
(self,
                 vis_token_dim,
                 mask_dim,
                 backbone,  # placeholder
                 bn_group,
                 pixel_decoder_cfg=None)

Source from the content-addressed store, hash-verified

447
448class MoreSimpleFPNwoNorm(SimpleFPN):
449 def __init__(self,
450 vis_token_dim,
451 mask_dim,
452 backbone, # placeholder
453 bn_group,
454 pixel_decoder_cfg=None):
455 super(SimpleFPN, self).__init__()
456 self.embed_dim = backbone.embed_dim
457 self.mask_dim = mask_dim
458 self.vis_token_dim = vis_token_dim
459 self.pixel_decoder_cfg = pixel_decoder_cfg
460
461 fpn1 = nn.Sequential(
462 nn.ConvTranspose2d(self.embed_dim, self.embed_dim, kernel_size=2, stride=2),
463 Norm2d(self.embed_dim),
464 nn.GELU(),
465 nn.ConvTranspose2d(self.embed_dim, self.vis_token_dim, kernel_size=2, stride=2),
466 # in compliance with decoder dim request
467 )
468
469 fpn2 = nn.Sequential(
470 nn.ConvTranspose2d(self.embed_dim, self.vis_token_dim, kernel_size=2, stride=2),
471 # in compliance with decoder dim request
472 )
473
474 fpn3 = nn.Sequential(
475 # in compliance with decoder dim request
476 nn.Conv2d(self.embed_dim, self.vis_token_dim, kernel_size=1, stride=1, padding=0),
477 )
478
479 fpn4 = nn.Sequential(
480 nn.MaxPool2d(kernel_size=2, stride=2),
481 # in compliance with decoder dim request
482 nn.Conv2d(self.embed_dim, self.vis_token_dim, kernel_size=1, stride=1, padding=0),
483 )
484
485 self.fpns = nn.ModuleList([fpn1, fpn2, fpn3, fpn4])
486
487 if self.pixel_decoder_cfg is None:
488 self.mask_features = nn.Conv2d(self.vis_token_dim, self.mask_dim, kernel_size=1, stride=1, padding=0)
489 c2_xavier_fill(self.mask_features)
490 else:
491 input_shape = {name: ShapeSpec(channels=self.vis_token_dim, stride=[4, 8, 16, 32][i])
492 for i, name in enumerate(["fpn1", "fpn2", "fpn3", "fpn4"])}
493 self.pixel_decoder = MSDeformAttnPixelDecoder(conv_dim=self.vis_token_dim,
494 input_shape=input_shape,
495 mask_dim=self.mask_dim,
496 **pixel_decoder_cfg)
497
498 self.maskformer_num_feature_levels = 3 # always use 3 scales
499
500
501class PoseSimpleFPN(nn.Module):

Callers

nothing calls this directly

Calls 4

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

Tested by

no test coverage detected