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

Method __init__

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

Source from the content-addressed store, hash-verified

326
327class ShuffleL1FPN(SimpleFPN):
328 def __init__(self,
329 vis_token_dim,
330 mask_dim,
331 backbone, # placeholder
332 bn_group,
333 s_kernel,
334 pixel_decoder_cfg=None):
335 super(SimpleFPN, self).__init__()
336 self.embed_dim = backbone.embed_dim
337 self.mask_dim = mask_dim
338 self.vis_token_dim = vis_token_dim
339 self.pixel_decoder_cfg = pixel_decoder_cfg
340
341 fpn1 = nn.Sequential(
342 nn.Conv2d(self.embed_dim, self.vis_token_dim * 16, kernel_size=s_kernel, stride=1, padding=s_kernel // 2),
343 nn.PixelShuffle(4),
344 Norm2d(self.vis_token_dim),
345 )
346
347 fpn2 = nn.Sequential(
348 nn.Conv2d(self.embed_dim, self.vis_token_dim * 4, kernel_size=s_kernel, stride=1, padding=s_kernel // 2),
349 nn.PixelShuffle(2),
350 Norm2d(self.vis_token_dim),
351 )
352
353 fpn3 = nn.Sequential(
354 # in compliance with decoder dim request
355 nn.Conv2d(self.embed_dim, self.vis_token_dim, kernel_size=1, stride=1, padding=0),
356 Norm2d(self.vis_token_dim),
357 )
358
359 fpn4 = nn.Sequential(
360 nn.MaxPool2d(kernel_size=2, stride=2),
361 # in compliance with decoder dim request
362 nn.Conv2d(self.embed_dim, self.vis_token_dim, kernel_size=1, stride=1, padding=0),
363 Norm2d(self.vis_token_dim),
364 )
365
366 self.fpns = nn.ModuleList([fpn1, fpn2, fpn3, fpn4])
367
368 if self.pixel_decoder_cfg is None:
369 self.mask_features = nn.Conv2d(self.vis_token_dim, self.mask_dim, kernel_size=1, stride=1, padding=0)
370 c2_xavier_fill(self.mask_features)
371 else:
372 input_shape = {name: ShapeSpec(channels=self.vis_token_dim, stride=[4, 8, 16, 32][i])
373 for i, name in enumerate(["fpn1", "fpn2", "fpn3", "fpn4"])}
374 self.pixel_decoder = MSDeformAttnPixelDecoder(conv_dim=self.vis_token_dim,
375 input_shape=input_shape,
376 mask_dim=self.mask_dim,
377 **pixel_decoder_cfg)
378
379 self.maskformer_num_feature_levels = 3 # always use 3 scales
380
381
382class SimpleMFFPN(SimpleFPN):

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