Shortcuts

Note

You are reading the documentation for MMClassification 0.x, which will soon be deprecated at the end of 2022. We recommend you upgrade to MMClassification 1.0 to enjoy fruitful new features and better performance brought by OpenMMLab 2.0. Check the installation tutorial, migration tutorial and changelog for more details.

SVT

class mmcls.models.SVT(arch, in_channels=3, out_indices=(3,), qkv_bias=False, drop_rate=0.0, attn_drop_rate=0.0, drop_path_rate=0.0, norm_cfg={'type': 'LN'}, norm_after_stage=False, init_cfg=None)[source]

The backbone of Twins-SVT.

This backbone is the implementation of Twins: Revisiting the Design of Spatial Attention in Vision Transformers.

Parameters
  • arch (dict, str) –

    SVT architecture, a str value in arch zoo or a detailed configuration dict with 8 keys, and the length of all the values in dict should be the same:

    • depths (List[int]): The number of encoder layers in each stage.

    • embed_dims (List[int]): Embedding dimension in each stage.

    • patch_sizes (List[int]): The patch sizes in each stage.

    • num_heads (List[int]): Numbers of attention head in each stage.

    • strides (List[int]): The strides in each stage.

    • mlp_ratios (List[int]): The ratios of mlp in each stage.

    • sr_ratios (List[int]): The ratios of GSA-encoder layers in each

      stage.

    • windiow_sizes (List[int]): The window sizes in LSA-encoder layers

      in each stage.

  • in_channels (int) – Number of input channels. Default: 3.

  • out_indices (tuple[int]) – Output from which stages. Default: (3, ).

  • qkv_bias (bool) – Enable bias for qkv if True. Default: False.

  • drop_rate (float) – Dropout rate. Default 0.

  • attn_drop_rate (float) – Dropout ratio of attention weight. Default 0.0

  • drop_path_rate (float) – Stochastic depth rate. Default 0.2.

  • norm_cfg (dict) – Config dict for normalization layer. Default: dict(type=’LN’)

  • norm_after_stage (bool, List[bool]) – Add extra norm after each stage. Default False.

  • init_cfg (dict, optional) – The Config for initialization. Defaults to None.

Examples

>>> from mmcls.models import SVT
>>> import torch
>>> svt_cfg = {'arch': "small",
>>>            'norm_after_stage': [False, False, False, True]}
>>> model = SVT(**svt_cfg)
>>> x = torch.rand(1, 3, 224, 224)
>>> outputs = model(x)
>>> print(outputs[-1].shape)
torch.Size([1, 512, 7, 7])
>>> svt_cfg["out_indices"] = (0, 1, 2, 3)
>>> svt_cfg["norm_after_stage"] = [True, True, True, True]
>>> model = SVT(**svt_cfg)
>>> output = model(x)
>>> for feat in output:
>>>     print(feat.shape)
torch.Size([1, 64, 56, 56])
torch.Size([1, 128, 28, 28])
torch.Size([1, 320, 14, 14])
torch.Size([1, 512, 7, 7])
Read the Docs v: latest
Versions
master
latest
1.x
dev-1.x
Downloads
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.