From c7bb5fc43fda45de09b8abf4e9bb23f2d39a1639 Mon Sep 17 00:00:00 2001 From: Phil Wang Date: Wed, 6 Apr 2022 16:12:17 -0700 Subject: [PATCH] maxvit intent to build (#211) complete hybrid mbconv + block / grid efficient self attention MaxViT --- README.md | 40 ++++++ images/max-vit.png | Bin 0 -> 136409 bytes setup.py | 4 +- vit_pytorch/crossformer.py | 4 +- vit_pytorch/levit.py | 4 +- vit_pytorch/max_vit.py | 270 +++++++++++++++++++++++++++++++++++++ vit_pytorch/regionvit.py | 2 +- 7 files changed, 317 insertions(+), 7 deletions(-) create mode 100644 images/max-vit.png create mode 100644 vit_pytorch/max_vit.py diff --git a/README.md b/README.md index ea188a1..44736e7 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ - [RegionViT](#regionvit) - [ScalableViT](#scalablevit) - [SepViT](#sepvit) +- [MaxViT](#maxvit) - [NesT](#nest) - [MobileViT](#mobilevit) - [Masked Autoencoder](#masked-autoencoder) @@ -596,6 +597,37 @@ img = torch.randn(1, 3, 224, 224) preds = v(img) # (1, 1000) ``` +## MaxViT + + + +This paper proposes a hybrid convolutional / attention network, using MBConv from the convolution side, and then block / grid axial sparse attention. + +They also claim this specific vision transformer is good for generative models (GANs). + +ex. MaxViT-S + +```python +import torch +from vit_pytorch.max_vit import MaxViT + +v = MaxViT( + num_classes = 1000, + dim_conv_stem = 64, # dimension of the convolutional stem, would default to dimension of first layer if not specified + dim = 96, # dimension of first layer, doubles every layer + dim_head = 32, # dimension of attention heads, kept at 32 in paper + depth = (2, 2, 5, 2), # number of MaxViT blocks per stage, which consists of MBConv, block-like attention, grid-like attention + window_size = 7, # window size for block and grids + mbconv_expansion_rate = 4, # expansion rate of MBConv + mbconv_shrinkage_rate = 0.25, # shrinkage rate of squeeze-excitation in MBConv + dropout = 0.1 # dropout +) + +img = torch.randn(2, 3, 224, 224) + +preds = v(img) # (2, 1000) +``` + ## NesT @@ -1544,6 +1576,14 @@ Coming from computer vision and new to transformers? Here are some resources tha } ``` +```bibtex +@inproceedings{Tu2022MaxViTMV, + title = {MaxViT: Multi-Axis Vision Transformer}, + author = {Zhe-Wei Tu and Hossein Talebi and Han Zhang and Feng Yang and Peyman Milanfar and Alan Conrad Bovik and Yinxiao Li}, + year = {2022} +} +``` + ```bibtex @misc{vaswani2017attention, title = {Attention Is All You Need}, diff --git a/images/max-vit.png b/images/max-vit.png new file mode 100644 index 0000000000000000000000000000000000000000..2b76f018dd7e8d7e19f1356399f96506ec03545d GIT binary patch literal 136409 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.4.1', - 'torch>=1.6', + 'torch>=1.10', 'torchvision' ], setup_requires=[ diff --git a/vit_pytorch/crossformer.py b/vit_pytorch/crossformer.py index 65ec3cb..2725532 100644 --- a/vit_pytorch/crossformer.py +++ b/vit_pytorch/crossformer.py @@ -108,7 +108,7 @@ class Attention(nn.Module): # calculate and store indices for retrieving bias pos = torch.arange(window_size) - grid = torch.stack(torch.meshgrid(pos, pos)) + grid = torch.stack(torch.meshgrid(pos, pos, indexing = 'ij')) grid = rearrange(grid, 'c i j -> (i j) c') rel_pos = grid[:, None] - grid[None, :] rel_pos += window_size - 1 @@ -144,7 +144,7 @@ class Attention(nn.Module): # add dynamic positional bias pos = torch.arange(-wsz, wsz + 1, device = device) - rel_pos = torch.stack(torch.meshgrid(pos, pos)) + rel_pos = torch.stack(torch.meshgrid(pos, pos, indexing = 'ij')) rel_pos = rearrange(rel_pos, 'c i j -> (i j) c') biases = self.dpb(rel_pos.float()) rel_pos_bias = biases[self.rel_pos_indices] diff --git a/vit_pytorch/levit.py b/vit_pytorch/levit.py index ffb3efa..bf9a092 100644 --- a/vit_pytorch/levit.py +++ b/vit_pytorch/levit.py @@ -71,8 +71,8 @@ class Attention(nn.Module): q_range = torch.arange(0, fmap_size, step = (2 if downsample else 1)) k_range = torch.arange(fmap_size) - q_pos = torch.stack(torch.meshgrid(q_range, q_range), dim = -1) - k_pos = torch.stack(torch.meshgrid(k_range, k_range), dim = -1) + q_pos = torch.stack(torch.meshgrid(q_range, q_range, indexing = 'ij'), dim = -1) + k_pos = torch.stack(torch.meshgrid(k_range, k_range, indexing = 'ij'), dim = -1) q_pos, k_pos = map(lambda t: rearrange(t, 'i j c -> (i j) c'), (q_pos, k_pos)) rel_pos = (q_pos[:, None, ...] - k_pos[None, :, ...]).abs() diff --git a/vit_pytorch/max_vit.py b/vit_pytorch/max_vit.py new file mode 100644 index 0000000..cf9ac45 --- /dev/null +++ b/vit_pytorch/max_vit.py @@ -0,0 +1,270 @@ +from functools import partial + +import torch +from torch import nn, einsum + +from einops import rearrange, repeat +from einops.layers.torch import Rearrange, Reduce + +# helpers + +def exists(val): + return val is not None + +def default(val, d): + return val if exists(val) else d + +def cast_tuple(val, length = 1): + return val if isinstance(val, tuple) else ((val,) * length) + +# helper classes + +class PreNormResidual(nn.Module): + def __init__(self, dim, fn): + super().__init__() + self.norm = nn.LayerNorm(dim) + self.fn = fn + + def forward(self, x): + return self.fn(self.norm(x)) + x + +# MBConv + +class SqueezeExcitation(nn.Module): + def __init__(self, dim, shrinkage_rate = 0.25): + super().__init__() + hidden_dim = int(dim * shrinkage_rate) + + self.gate = nn.Sequential( + Reduce('b c h w -> b c', 'mean'), + nn.Linear(dim, hidden_dim, bias = False), + nn.SiLU(), + nn.Linear(hidden_dim, dim, bias = False), + nn.Sigmoid(), + Rearrange('b c -> b c 1 1') + ) + + def forward(self, x): + return x * self.gate(x) + + +class MBConvResidual(nn.Module): + def __init__(self, fn, dropout = 0.): + super().__init__() + self.fn = fn + self.dropsample = Dropsample(dropout) + + def forward(self, x): + out = self.fn(x) + out = self.dropsample(out) + return out + +class Dropsample(nn.Module): + def __init__(self, prob = 0): + super().__init__() + self.prob = prob + + def forward(self, x): + device = x.device + + if self.prob == 0. or (not self.training): + return x + + keep_mask = torch.FloatTensor((x.shape[0], 1, 1, 1), device = device).uniform_() > self.prob + return x * keep_mask / (1 - self.prob) + +def MBConv( + dim_in, + dim_out, + *, + downsample, + expansion_rate = 4, + shrinkage_rate = 0.25, + dropout = 0. +): + hidden_dim = int(expansion_rate * dim_out) + stride = 2 if downsample else 1 + + net = nn.Sequential( + nn.Conv2d(dim_in, dim_out, 1), + nn.BatchNorm2d(dim_out), + nn.SiLU(), + nn.Conv2d(dim_out, dim_out, 3, stride = stride, padding = 1, groups = dim_out), + SqueezeExcitation(dim_out, shrinkage_rate = shrinkage_rate), + nn.Conv2d(dim_out, dim_out, 1), + nn.BatchNorm2d(dim_out) + ) + + if dim_in == dim_out and not downsample: + net = MBConvResidual(net, dropout = dropout) + + return net + +# attention related classes + +class Attention(nn.Module): + def __init__( + self, + dim, + dim_head = 32, + dropout = 0., + window_size = 7 + ): + super().__init__() + assert (dim % dim_head) == 0, 'dimension should be divisible by dimension per head' + + self.heads = dim // dim_head + self.scale = dim_head ** -0.5 + + self.to_qkv = nn.Linear(dim, dim * 3, bias = False) + + self.attend = nn.Sequential( + nn.Softmax(dim = -1), + nn.Dropout(dropout) + ) + + self.to_out = nn.Sequential( + nn.Linear(dim, dim, bias = False), + nn.Dropout(dropout) + ) + + # relative positional bias + + self.rel_pos_bias = nn.Embedding((2 * window_size - 1) ** 2, self.heads) + + pos = torch.arange(window_size) + grid = torch.stack(torch.meshgrid(pos, pos, indexing = 'ij')) + grid = rearrange(grid, 'c i j -> (i j) c') + rel_pos = rearrange(grid, 'i ... -> i 1 ...') - rearrange(grid, 'j ... -> 1 j ...') + rel_pos += window_size - 1 + rel_pos_indices = (rel_pos * torch.tensor([2 * window_size - 1, 1])).sum(dim = -1) + + self.register_buffer('rel_pos_indices', rel_pos_indices, persistent = False) + + def forward(self, x): + batch, height, width, window_height, window_width, _, device, h = *x.shape, x.device, self.heads + + # flatten + + x = rearrange(x, 'b x y w1 w2 d -> (b x y) (w1 w2) d') + + # project for queries, keys, values + + q, k, v = self.to_qkv(x).chunk(3, dim = -1) + + # split heads + + q, k, v = map(lambda t: rearrange(t, 'b n (h d ) -> b h n d', h = h), (q, k, v)) + + # scale + + q = q * self.scale + + # sim + + sim = einsum('b h i d, b h j d -> b h i j', q, k) + + # add positional bias + + bias = self.rel_pos_bias(self.rel_pos_indices) + sim = sim + rearrange(bias, 'i j h -> h i j') + + # attention + + attn = self.attend(sim) + + # aggregate + + out = einsum('b h i j, b h j d -> b h i d', attn, v) + + # merge heads + + out = rearrange(out, 'b h (w1 w2) d -> b w1 w2 (h d)', w1 = window_height, w2 = window_width) + + # combine heads out + + out = self.to_out(out) + return rearrange(out, '(b x y) ... -> b x y ...', x = height, y = width) + +class MaxViT(nn.Module): + def __init__( + self, + *, + num_classes, + dim, + depth, + dim_head = 32, + dim_conv_stem = None, + window_size = 7, + mbconv_expansion_rate = 4, + mbconv_shrinkage_rate = 0.25, + dropout = 0.1, + channels = 3 + ): + super().__init__() + assert isinstance(depth, tuple), 'depth needs to be tuple if integers indicating number of transformer blocks at that stage' + + # convolutional stem + + dim_conv_stem = default(dim_conv_stem, dim) + + self.conv_stem = nn.Sequential( + nn.Conv2d(channels, dim_conv_stem, 3, stride = 2, padding = 1), + nn.Conv2d(dim_conv_stem, dim_conv_stem, 3, padding = 1) + ) + + # variables + + num_stages = len(depth) + + dims = tuple(map(lambda i: (2 ** i) * dim, range(num_stages))) + dims = (dim_conv_stem, *dims) + dim_pairs = tuple(zip(dims[:-1], dims[1:])) + + self.layers = nn.ModuleList([]) + + # shorthand for window size for efficient block - grid like attention + + w = window_size + + # iterate through stages + + for ind, ((layer_dim_in, layer_dim), layer_depth) in enumerate(zip(dim_pairs, depth)): + for stage_ind in range(layer_depth): + is_first = stage_ind == 0 + stage_dim_in = layer_dim_in if is_first else layer_dim + + block = nn.Sequential( + MBConv( + stage_dim_in, + layer_dim, + downsample = is_first, + expansion_rate = mbconv_expansion_rate, + shrinkage_rate = mbconv_shrinkage_rate + ), + Rearrange('b d (x w1) (y w2) -> b x y w1 w2 d', w1 = w, w2 = w), # block-like attention + PreNormResidual(layer_dim, Attention(dim = layer_dim, dim_head = dim_head, dropout = dropout, window_size = w)), + Rearrange('b x y w1 w2 d -> b d (x w1) (y w2)'), + + Rearrange('b d (w1 x) (w2 y) -> b x y w1 w2 d', w1 = w, w2 = w), # grid-like attention + PreNormResidual(layer_dim, Attention(dim = layer_dim, dim_head = dim_head, dropout = dropout, window_size = w)), + Rearrange('b x y w1 w2 d -> b d (w1 x) (w2 y)'), + ) + + self.layers.append(block) + + # mlp head out + + self.mlp_head = nn.Sequential( + Reduce('b d h w -> b d', 'mean'), + nn.LayerNorm(dims[-1]), + nn.Linear(dims[-1], num_classes) + ) + + def forward(self, x): + x = self.conv_stem(x) + + for stage in self.layers: + x = stage(x) + + return self.mlp_head(x) diff --git a/vit_pytorch/regionvit.py b/vit_pytorch/regionvit.py index bdb6095..2e155a1 100644 --- a/vit_pytorch/regionvit.py +++ b/vit_pytorch/regionvit.py @@ -138,7 +138,7 @@ class R2LTransformer(nn.Module): h_range = torch.arange(window_size_h, device = device) w_range = torch.arange(window_size_w, device = device) - grid_x, grid_y = torch.meshgrid(h_range, w_range) + grid_x, grid_y = torch.meshgrid(h_range, w_range, indexing = 'ij') grid = torch.stack((grid_x, grid_y)) grid = rearrange(grid, 'c h w -> c (h w)') grid = (grid[:, :, None] - grid[:, None, :]) + (self.window_size - 1)