Lstm training accuarcy stays same

I am new to Pytorch. Here is my problem, I train a lstm classifier
my training precision don’t increase in a tiny dataset.
the classifier seems to guess the max num of label of the dataset for all the example.
epoch 0 total_loss = 1.409505
train data precision:58/100 = 58.00%
valid data precision:92/401 = 22.94%
save model
epoch 1 total_loss = 1.146850
train data precision:58/100 = 58.00%
valid data precision:92/401 = 22.94%
epoch 2 total_loss = 1.060287
train data precision:58/100 = 58.00%
valid data precision:92/401 = 22.94%
epoch 3 total_loss = 1.019745
train data precision:58/100 = 58.00%
valid data precision:92/401 = 22.94%
epoch 4 total_loss = 0.997164
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
save model
epoch 5 total_loss = 0.983069
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
epoch 6 total_loss = 0.973470
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
epoch 7 total_loss = 0.966532
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
epoch 8 total_loss = 0.961307
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
here is my code.

PyTorch RNNs take seq,batch,feature inputs unless you instantiate with batch_first=True. The full details are in the documentation.

Best regards

Thomas

@tom
my training precision don’t increase in a tiny dataset.
the classifier seems to guess the max num of label of the dataset for all the example.
epoch 0 total_loss = 1.409505
train data precision:58/100 = 58.00%
valid data precision:92/401 = 22.94%
save model
epoch 1 total_loss = 1.146850
train data precision:58/100 = 58.00%
valid data precision:92/401 = 22.94%
epoch 2 total_loss = 1.060287
train data precision:58/100 = 58.00%
valid data precision:92/401 = 22.94%
epoch 3 total_loss = 1.019745
train data precision:58/100 = 58.00%
valid data precision:92/401 = 22.94%
epoch 4 total_loss = 0.997164
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
save model
epoch 5 total_loss = 0.983069
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
epoch 6 total_loss = 0.973470
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
epoch 7 total_loss = 0.966532
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
epoch 8 total_loss = 0.961307
train data precision:59/100 = 59.00%
valid data precision:92/401 = 22.94%
here is my code.

I have met this problem,
and my reason is the shape of output.
You can check your code.

i think my output shape is ok. (batch_num, cls_num)

my learning rate is too large.
thank you~