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

Method __init__

semantic_sam/backbone/focal.py:364–436  ·  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_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

362 """
363
364 def __init__(self,
365 pretrain_img_size=1600,
366 patch_size=4,
367 in_chans=3,
368 embed_dim=96,
369 depths=[2, 2, 6, 2],
370 mlp_ratio=4.,
371 drop_rate=0.,
372 drop_path_rate=0.2,
373 norm_layer=nn.LayerNorm,
374 patch_norm=True,
375 out_indices=[0, 1, 2, 3],
376 frozen_stages=-1,
377 focal_levels=[2,2,2,2],
378 focal_windows=[9,9,9,9],
379 use_conv_embed=False,
380 use_postln=False,
381 use_postln_in_modulation=False,
382 scaling_modulator=False,
383 use_layerscale=False,
384 use_checkpoint=False,
385 ):
386 super().__init__()
387
388 self.pretrain_img_size = pretrain_img_size
389 self.num_layers = len(depths)
390 self.embed_dim = embed_dim
391 self.patch_norm = patch_norm
392 self.out_indices = out_indices
393 self.frozen_stages = frozen_stages
394
395 # split image into non-overlapping patches
396 self.patch_embed = PatchEmbed(
397 patch_size=patch_size, in_chans=in_chans, embed_dim=embed_dim,
398 norm_layer=norm_layer if self.patch_norm else None,
399 use_conv_embed=use_conv_embed, is_stem=True)
400
401 self.pos_drop = nn.Dropout(p=drop_rate)
402
403 # stochastic depth
404 dpr = [x.item() for x in torch.linspace(0, drop_path_rate, sum(depths))] # stochastic depth decay rule
405
406 # build layers
407 self.layers = nn.ModuleList()
408 for i_layer in range(self.num_layers):
409 layer = BasicLayer(
410 dim=int(embed_dim * 2 ** i_layer),
411 depth=depths[i_layer],
412 mlp_ratio=mlp_ratio,
413 drop=drop_rate,
414 drop_path=dpr[sum(depths[:i_layer]):sum(depths[:i_layer + 1])],
415 norm_layer=norm_layer,
416 downsample=PatchEmbed if (i_layer < self.num_layers - 1) else None,
417 focal_window=focal_windows[i_layer],
418 focal_level=focal_levels[i_layer],
419 use_conv_embed=use_conv_embed,
420 use_postln=use_postln,
421 use_postln_in_modulation=use_postln_in_modulation,

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