  Errors in surface code have typically been decoded by Minimum Weight Perfect
Matching (MWPM) based method. Recently, neural-network-based Machine Learning
(ML) techniques have been employed for this purpose. Here we propose a
two-level (low and high) ML-based decoding scheme, where the first level
corrects errors on physical qubits and the second one corrects any existing
logical errors, for different noise models. Our results show that our proposed
decoding method achieves $\sim10 \times$ and $\sim2 \times$ higher values of
pseudo-threshold and threshold respectively, than for MWPM. We show that usage
of more sophisticated ML models with higher training/testing time, do not
provide significant improvement in the decoder performance. Finally, data
generation for training the ML decoder requires significant overhead hence
lower volume of training data is desirable. We have shown that our decoder
maintains a good performance with the train-test-ratio as low as $40:60$.
