|
|
|
|
|
|
|
import torch.nn as nn |
|
from alias_free_activation.torch.resample import UpSample1d, DownSample1d |
|
|
|
|
|
class Activation1d(nn.Module): |
|
def __init__( |
|
self, |
|
activation, |
|
up_ratio: int = 2, |
|
down_ratio: int = 2, |
|
up_kernel_size: int = 12, |
|
down_kernel_size: int = 12, |
|
): |
|
super().__init__() |
|
self.up_ratio = up_ratio |
|
self.down_ratio = down_ratio |
|
self.act = activation |
|
self.upsample = UpSample1d(up_ratio, up_kernel_size) |
|
self.downsample = DownSample1d(down_ratio, down_kernel_size) |
|
|
|
|
|
def forward(self, x): |
|
x = self.upsample(x) |
|
x = self.act(x) |
|
x = self.downsample(x) |
|
|
|
return x |
|
|