Spaces:
Runtime error
Runtime error
Upload ./RepCodec/repcodec/modules/residual_unit.py with huggingface_hub
Browse files
RepCodec/repcodec/modules/residual_unit.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright (c) ByteDance, Inc. and its affiliates.
|
| 2 |
+
# Copyright (c) Chutong Meng
|
| 3 |
+
#
|
| 4 |
+
# This source code is licensed under the CC BY-NC license found in the
|
| 5 |
+
# LICENSE file in the root directory of this source tree.
|
| 6 |
+
# Based on AudioDec (https://github.com/facebookresearch/AudioDec)
|
| 7 |
+
|
| 8 |
+
import torch.nn as nn
|
| 9 |
+
|
| 10 |
+
from RepCodec.repcodec.layers.conv_layer import Conv1d, Conv1d1x1
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
class ResidualUnit(nn.Module):
|
| 14 |
+
def __init__(
|
| 15 |
+
self,
|
| 16 |
+
in_channels: int,
|
| 17 |
+
out_channels: int,
|
| 18 |
+
kernel_size=3,
|
| 19 |
+
dilation=1,
|
| 20 |
+
bias=False,
|
| 21 |
+
nonlinear_activation="ELU",
|
| 22 |
+
nonlinear_activation_params={},
|
| 23 |
+
):
|
| 24 |
+
super().__init__()
|
| 25 |
+
self.activation = getattr(nn, nonlinear_activation)(**nonlinear_activation_params)
|
| 26 |
+
self.conv1 = Conv1d(
|
| 27 |
+
in_channels=in_channels,
|
| 28 |
+
out_channels=out_channels,
|
| 29 |
+
kernel_size=kernel_size,
|
| 30 |
+
stride=1,
|
| 31 |
+
dilation=dilation,
|
| 32 |
+
bias=bias,
|
| 33 |
+
)
|
| 34 |
+
self.conv2 = Conv1d1x1(out_channels, out_channels, bias)
|
| 35 |
+
|
| 36 |
+
def forward(self, x):
|
| 37 |
+
y = self.conv1(self.activation(x))
|
| 38 |
+
y = self.conv2(self.activation(y))
|
| 39 |
+
return x + y
|