Evaluating the results of CNN

In mnist I got results of last epoch as

Epoch 50/50 
trn_loss = 0.0262  trn_acc = 0.9926 
val_loss = 0.9231 val_acc = 0.9936

My questions:-

  1. Is this much underfitting okay ? Please explain why not.
  2. What can I do to improve the model ?

Help me understand the above. Thank you.

Edit:- 1

I trained for extended 5 epochs and here are the results:-

 Epoch 55/55 
 trn_loss = 0.0257  trn_acc = 0.9927 
 val_loss = 0.0231 val_acc = 0.9933

Does the model still underfits?

Such a big difference between training and validation is surprising. Try to add regularisation (weight regularisation, drop out or batch normalisation). Third line says train-acc. Is it val-acc?

Yes. I edited it.

Can you please elaborate your answer. I am not getting it. Here’s my model architecture:

Conv(32)
BatchNorm
Conv(32)
BatchNorm()
Maxpool()
Dropout(0.25)
Conv(64)
BatchNorm
Conv(64)
BatchNorm()
Maxpool()
Dropout(0.25)
Dense(512)
Dropout(0.25)
Dense(output_layers)

Is the model underfitted ?

I looked at the update and now things look fine. There’s no problem with your net.