mirror of
https://github.com/open-mmlab/mmsegmentation.git
synced 2025-06-03 22:03:48 +08:00
* 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>
29 lines
483 B
Python
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)
|