fix wrong norm in nest

This commit is contained in:
Phil Wang
2021-08-05 12:55:48 -07:00
parent 22da26fa4b
commit e5324242be
2 changed files with 13 additions and 3 deletions

View File

@@ -3,7 +3,7 @@ from setuptools import setup, find_packages
setup(
name = 'vit-pytorch',
packages = find_packages(exclude=['examples']),
version = '0.20.1',
version = '0.20.2',
license='MIT',
description = 'Vision Transformer (ViT) - Pytorch',
author = 'Phil Wang',

View File

@@ -10,10 +10,20 @@ from einops.layers.torch import Rearrange, Reduce
def cast_tuple(val, depth):
return val if isinstance(val, tuple) else ((val,) * depth)
LayerNorm = partial(nn.InstanceNorm2d, affine = True)
# classes
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__()