Your model architecture doesn’t match the posted image, which seems to use linear layers only.
In your current model you are mixing nn.Conv1d layers (which expect 3D inputs as [batch_size, channels, seq_len]) with nn.Linear layers (which accept [batch_size, *, in_feautres] inputs).
self.mid will create an output as [batch_size, *, 16] while the following self.syncconv1 layer would try to apply a kernel with a size of 1024 to the sequence length of 16 and fails with the negative output size.