in models.py [0:0]
def __init__(self, input_size, output_size, tds_groups, kernel_size, dropout):
super(TDS, self).__init__()
modules = []
in_channels = input_size
for tds_group in tds_groups:
# add downsample layer:
out_channels = input_size * tds_group["channels"]
modules.extend(
[
torch.nn.Conv1d(
in_channels=in_channels,
out_channels=out_channels,
kernel_size=kernel_size,
padding=kernel_size // 2,
stride=tds_group.get("stride", 2),
),
torch.nn.ReLU(),
torch.nn.Dropout(dropout),
torch.nn.InstanceNorm1d(out_channels, affine=True),
]
)
for _ in range(tds_group["num_blocks"]):
modules.append(
TDSBlock(tds_group["channels"], input_size, kernel_size, dropout)
)
in_channels = out_channels
self.tds = torch.nn.Sequential(*modules)
self.linear = torch.nn.Linear(in_channels, output_size)