The data is audio frames. Each frame has 13 features. The goal is to input 128 of those frames each time and end up with a linear classifier to classify each frame with one of the 51 classes.

From this I understand that your sequence length is 13. Its also clear that TDNN layer has a Conv1d block to which you are currently passing in_channels as 13, which I believe is incorrect. Could you try changing feat_dim to 1 and keeping features.unsqueeze(dim=1). It shouldn’t throw an error now, but I’m not sure how the output will react.