Thanks @ptrblck. Just to be sure I’m not making any errors. The models is as follows:
class SeqLSTM(nn.Module):
    def __init__(self, input_size, num_classes, num_layers, dropout):
        super(SeqLSTM, self).__init__()

        self.lstm_one = nn.LSTM(input_size=input_size, hidden_size=int(input_size * 1.5),
                                num_layers=num_layers, dropout=dropout, batch_first=True)
        self.linear = nn.Linear(in_features=int(input_size * 1.5), out_features=num_classes)
        self.softmax = nn.LogSoftmax(dim=1)


    def forward(self, input):
        x, (hidden, cell) = self.lstm_one(input)
        x = self.linear(x)
        x = self.softmax(x)
        return x

The aim is to have each output tensor represent the softmax probabilities that each frame is of a particular class. I’m guessing that I’ll just have to permute the output to get the [batch_size=50, nb_classes=12, nb_frames=175] order that you suggested?
Thanks again