in src/hyperconv.py [0:0]
def forward(self, x, z):
'''
:param x: input signal as a B x ch_in x T tensor
:param z: weight-generating input as a B x z_dim x K tensor (K s.t. T is a multiple of K)
:return: output: B x ch_out x T tensor as layer output
skip: B x ch_out x T tensor as skip connection output
'''
assert x.shape[-1] % z.shape[-1] == 0
y = self.conv(x, z)
y = th.sin(y)
# residual and skip
residual = self.residual(y)
if not self.ch_in == self.ch_out:
x = self.equalize_channels(x)
skip = self.skip(y)
return (residual + x) / 2, skip