Spaces:
Build error
Build error
Download encoder/modules/norm.py from breadlicker45/WavTokenizer-demo: direct link, hf CLI and curl.
- Browser
- Download file 843 Bytes
-
https://huggingface.co/spaces/breadlicker45/WavTokenizer-demo/resolve/main/encoder/modules/norm.py
- Command line
-
hf download hf://spaces/breadlicker45/WavTokenizer-demo/encoder/modules/norm.py
-
curl -L -o norm.py https://huggingface.co/spaces/breadlicker45/WavTokenizer-demo/resolve/main/encoder/modules/norm.py
843 Bytes
| # Copyright (c) Meta Platforms, Inc. and affiliates. | |
| # All rights reserved. | |
| # | |
| # This source code is licensed under the license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| """Normalization modules.""" | |
| import typing as tp | |
| import einops | |
| import torch | |
| from torch import nn | |
| class ConvLayerNorm(nn.LayerNorm): | |
| """ | |
| Convolution-friendly LayerNorm that moves channels to last dimensions | |
| before running the normalization and moves them back to original position right after. | |
| """ | |
| def __init__(self, normalized_shape: tp.Union[int, tp.List[int], torch.Size], **kwargs): | |
| super().__init__(normalized_shape, **kwargs) | |
| def forward(self, x): | |
| x = einops.rearrange(x, 'b ... t -> b t ...') | |
| x = super().forward(x) | |
| x = einops.rearrange(x, 'b t ... -> b ... t') | |
| return | |