hey @gautam75 ,
i thoroughly checked your code and did gave it runs too.
there is no such problem from your end , actually the problem is due to the values are sometimes getting very small or very big and due to that you might see some warnings of overflow or divide by zero something like this.
Due to these , you values of weights and bias are turned into NaN values.
and hence that cause breaking your model working.
To deal with , you will need to add more layers or add regularization.
That might help.
Else , your relu codes are correct and you can move forward with other learning.