nn.CrossEntropyLoss expects raw logits, so you should remove the self.softmax from the forward method.
Assuming your current model output represents: [batch_size=88, seq_len=498, nb_classes=3], you would have to permute the output so that it has the shape [batch_size, nb_classes, seq_len] via output = output.permute(0, 2, 1).
Also the target shape should be [batch_size, seq_len] and it should contain class indices in the range [0, nb_classes-1].