From ab781f7ddb187be38ac5442e3af5f98ffe5d442b Mon Sep 17 00:00:00 2001 From: Phil Wang Date: Thu, 29 Apr 2021 14:54:06 -0700 Subject: [PATCH] add Twins SVT (small) --- README.md | 52 +++++++++ images/twins_svt.png | Bin 0 -> 112848 bytes vit_pytorch/twins_svt.py | 229 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 281 insertions(+) create mode 100644 images/twins_svt.png create mode 100644 vit_pytorch/twins_svt.py diff --git a/README.md b/README.md index 7a12fd3..ce3b4ce 100644 --- a/README.md +++ b/README.md @@ -334,6 +334,47 @@ img = torch.randn(1, 3, 224, 224) pred = v(img) # (1, 1000) ``` +## Twins SVT + + + +This paper mixes local and global attention, along with positiona encoding generator (proposed in CPVT) and global average pooling, to achieve the same results as Swin, without the extra complexity of shifted windows, etc. + +```python +import torch +from vit_pytorch.twins_svt import TwinsSVT + +model = TwinsSVT( + num_classes = 1000, # stage 1 - number of output classes + s1_emb_dim = 64, # stage 1 - patch embedding projected dimension + s1_patch_size = 4, # stage 1 - patch size for patch embedding + s1_local_patch_size = 7, # stage 1 - patch size for local attention + s1_global_k = 7, # stage 1 - global attention key / value reduction factor, defaults to 7 as specified in paper + s1_depth = 1, # stage 1 - number of transformer blocks (local attn -> ff -> global attn -> ff) + s2_emb_dim = 128, # stage 2 ... + s2_patch_size = 2, + s2_local_patch_size = 7, + s2_global_k = 7, + s2_depth = 1, + s3_emb_dim = 256, # stage 3 + s3_patch_size = 2, + s3_local_patch_size = 7, + s3_global_k = 7, + s3_depth = 5, + s4_emb_dim = 512, # stage 4 + s4_patch_size = 2, + s4_local_patch_size = 7, + s4_global_k = 7, + s4_depth = 4, + peg_kernel_size = 3, # positional encoding generator kernel size + dropout = 0. # dropout +) + +img = torch.randn(1, 3, 224, 224) + +pred = model(img) # (1, 1000) +``` + ## Masked Patch Prediction Thanks to Zach, you can train using the original masked patch prediction task presented in the paper, with the following code. @@ -665,6 +706,17 @@ Coming from computer vision and new to transformers? Here are some resources tha } ``` +```bibtex +@misc{chu2021twins, + title = {Twins: Revisiting Spatial Attention Design in Vision Transformers}, + author = {Xiangxiang Chu and Zhi Tian and Yuqing Wang and Bo Zhang and Haibing Ren and Xiaolin Wei and Huaxia Xia and Chunhua Shen}, + year = {2021}, + eprint = {2104.13840}, + archivePrefix = {arXiv}, + primaryClass = {cs.CV} +} +``` + ```bibtex @misc{su2021roformer, title = {RoFormer: Enhanced Transformer with Rotary Position Embedding}, diff --git a/images/twins_svt.png b/images/twins_svt.png new file mode 100644 index 0000000000000000000000000000000000000000..5e68d6ff63fcdc3241f9b6409fcc9bdced0f7e4a GIT binary patch literal 112848 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 Qqo6V?2)Z3D0A%mz>2RRfHL#D-o#RgcjNJ&a0 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 literal 0 HcmV?d00001 diff --git a/vit_pytorch/twins_svt.py b/vit_pytorch/twins_svt.py new file mode 100644 index 0000000..caf5d77 --- /dev/null +++ b/vit_pytorch/twins_svt.py @@ -0,0 +1,229 @@ +import torch +from torch import nn, einsum +import torch.nn.functional as F + +from einops import rearrange, repeat +from einops.layers.torch import Rearrange + +# helper methods + +def group_dict_by_key(cond, d): + return_val = [dict(), dict()] + for key in d.keys(): + match = bool(cond(key)) + ind = int(not match) + return_val[ind][key] = d[key] + return (*return_val,) + +def group_by_key_prefix_and_remove_prefix(prefix, d): + kwargs_with_prefix, kwargs = group_dict_by_key(lambda x: x.startswith(prefix), d) + kwargs_without_prefix = dict(map(lambda x: (x[0][len(prefix):], x[1]), tuple(kwargs_with_prefix.items()))) + return kwargs_without_prefix, kwargs + +# classes + +class Residual(nn.Module): + def __init__(self, fn): + super().__init__() + self.fn = fn + + def forward(self, x, **kwargs): + return self.fn(x, **kwargs) + x + +class LayerNorm(nn.Module): + def __init__(self, dim, eps = 1e-5): + super().__init__() + self.eps = eps + self.g = nn.Parameter(torch.ones(1, dim, 1, 1)) + self.b = nn.Parameter(torch.zeros(1, dim, 1, 1)) + + def forward(self, x): + std = torch.var(x, dim = 1, unbiased = False, keepdim = True).sqrt() + mean = torch.mean(x, dim = 1, keepdim = True) + return (x - mean) / (std + self.eps) * self.g + self.b + +class PreNorm(nn.Module): + def __init__(self, dim, fn): + super().__init__() + self.norm = LayerNorm(dim) + self.fn = fn + + def forward(self, x, **kwargs): + x = self.norm(x) + return self.fn(x, **kwargs) + +class FeedForward(nn.Module): + def __init__(self, dim, mult = 4, dropout = 0.): + super().__init__() + self.net = nn.Sequential( + nn.Conv2d(dim, dim * mult, 1), + nn.GELU(), + nn.Dropout(dropout), + nn.Conv2d(dim * mult, dim, 1), + nn.Dropout(dropout) + ) + def forward(self, x): + return self.net(x) + +class PatchEmbedding(nn.Module): + def __init__(self, *, dim, dim_out, patch_size): + super().__init__() + self.dim = dim + self.dim_out = dim_out + self.patch_size = patch_size + self.proj = nn.Conv2d(patch_size ** 2 * dim, dim_out, 1) + + def forward(self, fmap): + p = self.patch_size + fmap = rearrange(fmap, 'b c (h p1) (w p2) -> b (c p1 p2) h w', p1 = p, p2 = p) + return self.proj(fmap) + +class PEG(nn.Module): + def __init__(self, dim, kernel_size = 3): + super().__init__() + self.proj = Residual(nn.Conv2d(dim, dim, kernel_size = kernel_size, padding = kernel_size // 2, groups = dim, stride = 1)) + + def forward(self, x): + return self.proj(x) + +class LocalAttention(nn.Module): + def __init__(self, dim, heads = 8, dim_head = 64, dropout = 0., patch_size = 7): + super().__init__() + inner_dim = dim_head * heads + self.patch_size = patch_size + self.heads = heads + self.scale = dim_head ** -0.5 + + self.to_q = nn.Conv2d(dim, inner_dim, 1, bias = False) + self.to_kv = nn.Conv2d(dim, inner_dim * 2, 1, bias = False) + + self.to_out = nn.Sequential( + nn.Conv2d(inner_dim, dim, 1), + nn.Dropout(dropout) + ) + + def forward(self, fmap): + shape, p = fmap.shape, self.patch_size + b, n, x, y, h = *shape, self.heads + x, y = map(lambda t: t // p, (x, y)) + + fmap = rearrange(fmap, 'b c (x p1) (y p2) -> (b x y) c p1 p2', p1 = p, p2 = p) + + q, k, v = (self.to_q(fmap), *self.to_kv(fmap).chunk(2, dim = 1)) + q, k, v = map(lambda t: rearrange(t, 'b (h d) p1 p2 -> (b h) (p1 p2) d', h = h), (q, k, v)) + + dots = einsum('b i d, b j d -> b i j', q, k) * self.scale + + attn = dots.softmax(dim = - 1) + + out = einsum('b i j, b j d -> b i d', attn, v) + out = rearrange(out, '(b x y h) (p1 p2) d -> b (h d) (x p1) (y p2)', h = h, x = x, y = y, p1 = p, p2 = p) + return self.to_out(out) + +class GlobalAttention(nn.Module): + def __init__(self, dim, heads = 8, dim_head = 64, dropout = 0., k = 7): + super().__init__() + inner_dim = dim_head * heads + self.heads = heads + self.scale = dim_head ** -0.5 + + self.to_q = nn.Conv2d(dim, inner_dim, 1, bias = False) + self.to_kv = nn.Conv2d(dim, inner_dim * 2, k, stride = k, bias = False) + + self.to_out = nn.Sequential( + nn.Conv2d(inner_dim, dim, 1), + nn.Dropout(dropout) + ) + + def forward(self, x): + shape = x.shape + b, n, _, y, h = *shape, self.heads + q, k, v = (self.to_q(x), *self.to_kv(x).chunk(2, dim = 1)) + + q, k, v = map(lambda t: rearrange(t, 'b (h d) x y -> (b h) (x y) d', h = h), (q, k, v)) + + dots = einsum('b i d, b j d -> b i j', q, k) * self.scale + + attn = dots.softmax(dim = -1) + + out = einsum('b i j, b j d -> b i d', attn, v) + out = rearrange(out, '(b h) (x y) d -> b (h d) x y', h = h, y = y) + return self.to_out(out) + +class Transformer(nn.Module): + def __init__(self, dim, depth, heads = 8, dim_head = 64, mlp_mult = 4, local_patch_size = 7, global_k = 7, dropout = 0., has_local = True): + super().__init__() + self.layers = nn.ModuleList([]) + for _ in range(depth): + self.layers.append(nn.ModuleList([ + Residual(PreNorm(dim, LocalAttention(dim, heads = heads, dim_head = dim_head, dropout = dropout, patch_size = local_patch_size))) if has_local else nn.Identity(), + Residual(PreNorm(dim, FeedForward(dim, mlp_mult, dropout = dropout))) if has_local else nn.Identity(), + Residual(PreNorm(dim, GlobalAttention(dim, heads = heads, dim_head = dim_head, dropout = dropout, k = global_k))), + Residual(PreNorm(dim, FeedForward(dim, mlp_mult, dropout = dropout))) + ])) + def forward(self, x): + for local_attn, ff, global_attn, ff in self.layers: + x = local_attn(x) + x = ff(x) + x = global_attn(x) + x = ff(x) + return x + +class TwinsSVT(nn.Module): + def __init__( + self, + *, + num_classes, + s1_emb_dim = 64, + s1_patch_size = 4, + s1_local_patch_size = 7, + s1_global_k = 7, + s1_depth = 1, + s2_emb_dim = 128, + s2_patch_size = 2, + s2_local_patch_size = 7, + s2_global_k = 7, + s2_depth = 1, + s3_emb_dim = 256, + s3_patch_size = 2, + s3_local_patch_size = 7, + s3_global_k = 7, + s3_depth = 5, + s4_emb_dim = 512, + s4_patch_size = 2, + s4_local_patch_size = 7, + s4_global_k = 7, + s4_depth = 4, + peg_kernel_size = 3, + dropout = 0. + ): + super().__init__() + kwargs = dict(locals()) + + dim = 3 + layers = [] + + for prefix in ('s1', 's2', 's3', 's4'): + config, kwargs = group_by_key_prefix_and_remove_prefix(f'{prefix}_', kwargs) + is_last = prefix == 's4' + + dim_next = config['emb_dim'] + + layers.append(nn.Sequential( + PatchEmbedding(dim = dim, dim_out = dim_next, patch_size = config['patch_size']), + Transformer(dim = dim_next, depth = 1, local_patch_size = config['local_patch_size'], global_k = config['global_k'], dropout = dropout, has_local = not is_last), + PEG(dim = dim_next, kernel_size = peg_kernel_size), + Transformer(dim = dim_next, depth = config['depth'], local_patch_size = config['local_patch_size'], global_k = config['global_k'], dropout = dropout, has_local = not is_last) + )) + + dim = dim_next + + self.layers = nn.Sequential( + *layers, + nn.AdaptiveAvgPool2d(1), + Rearrange('... () () -> ...'), + nn.Linear(dim, num_classes) + ) + + def forward(self, x): + return self.layers(x)