MCPcopy Create free account
hub / github.com/UX-Decoder/Semantic-SAM / __init__

Method __init__

semantic_sam/backbone/focal_dw.py:458–533  ·  view source on GitHub ↗
(self,
                 pretrain_img_size=1600,
                 patch_size=4,
                 in_chans=3,
                 embed_dim=96,
                 depths=[2, 2, 6, 2],
                 mlp_ratio=4.,
                 drop_rate=0.,
                 drop_path_rate=0.2,
                 norm_layer=nn.LayerNorm,
                 patch_norm=True,
                 out_indices=[0, 1, 2, 3],
                 frozen_stages=-1,
                 focal_levels=[2,2,2,2], 
                 focal_windows=[9,9,9,9],
                 use_pre_norms=[False, False, False, False], 
                 use_conv_embed=False, 
                 use_postln=False, 
                 use_postln_in_modulation=False, 
                 scaling_modulator=False,
                 use_layerscale=False, 
                 use_checkpoint=False, 
        )

Source from the content-addressed store, hash-verified

456 """
457
458 def __init__(self,
459 pretrain_img_size=1600,
460 patch_size=4,
461 in_chans=3,
462 embed_dim=96,
463 depths=[2, 2, 6, 2],
464 mlp_ratio=4.,
465 drop_rate=0.,
466 drop_path_rate=0.2,
467 norm_layer=nn.LayerNorm,
468 patch_norm=True,
469 out_indices=[0, 1, 2, 3],
470 frozen_stages=-1,
471 focal_levels=[2,2,2,2],
472 focal_windows=[9,9,9,9],
473 use_pre_norms=[False, False, False, False],
474 use_conv_embed=False,
475 use_postln=False,
476 use_postln_in_modulation=False,
477 scaling_modulator=False,
478 use_layerscale=False,
479 use_checkpoint=False,
480 ):
481 super().__init__()
482
483 self.pretrain_img_size = pretrain_img_size
484 self.num_layers = len(depths)
485 self.embed_dim = embed_dim
486 self.patch_norm = patch_norm
487 self.out_indices = out_indices
488 self.frozen_stages = frozen_stages
489
490 # split image into non-overlapping patches
491 self.patch_embed = PatchEmbed(
492 patch_size=patch_size, in_chans=in_chans, embed_dim=embed_dim,
493 norm_layer=norm_layer if self.patch_norm else None,
494 use_conv_embed=use_conv_embed, is_stem=True, use_pre_norm=False)
495
496 self.pos_drop = nn.Dropout(p=drop_rate)
497
498 # stochastic depth
499 dpr = [x.item() for x in torch.linspace(0, drop_path_rate, sum(depths))] # stochastic depth decay rule
500
501 # build layers
502 self.layers = nn.ModuleList()
503 for i_layer in range(self.num_layers):
504 layer = BasicLayer(
505 dim=int(embed_dim * 2 ** i_layer),
506 depth=depths[i_layer],
507 mlp_ratio=mlp_ratio,
508 drop=drop_rate,
509 drop_path=dpr[sum(depths[:i_layer]):sum(depths[:i_layer + 1])],
510 norm_layer=norm_layer,
511 downsample=PatchEmbed if (i_layer < self.num_layers - 1) else None,
512 focal_window=focal_windows[i_layer],
513 focal_level=focal_levels[i_layer],
514 use_pre_norm=use_pre_norms[i_layer],
515 use_conv_embed=use_conv_embed,

Callers

nothing calls this directly

Calls 4

_freeze_stagesMethod · 0.95
PatchEmbedClass · 0.70
BasicLayerClass · 0.70
__init__Method · 0.45

Tested by

no test coverage detected