sennnnn c27ef91942 Adjust vision transformer backbone architectures (#524)
* Adjust vision transformer backbone architectures;

* Add DropPath, trunc_normal_ for VisionTransformer implementation;

* Add class token buring intermediate period and remove it during final period;

* Fix some parameters loss bug;

* * Store intermediate token features and impose no processes on them;

* Remove class token and reshape entire token feature from NLC to NCHW;

* Fix some doc error

* Add a arg for VisionTransformer backbone to control if input class token into transformer;

* Add stochastic depth decay rule for DropPath;

* * Fix output bug when input_cls_token=False;

* Add related unit test;

* * Add arg: out_indices to control model output;

* Add unit test for DropPath;

* Apply suggestions from code review

Co-authored-by: Jerry Jiarui XU <xvjiarui0826@gmail.com>
2021-04-30 10:37:47 -07:00

29 lines
483 B
Python

import torch
from mmseg.models.utils import DropPath
def test_drop_path():
# zero drop
layer = DropPath()
# input NLC format feature
x = torch.randn((1, 16, 32))
layer(x)
# input NLHW format feature
x = torch.randn((1, 32, 4, 4))
layer(x)
# non-zero drop
layer = DropPath(0.1)
# input NLC format feature
x = torch.randn((1, 16, 32))
layer(x)
# input NLHW format feature
x = torch.randn((1, 32, 4, 4))
layer(x)