XOR-solving neural network is suffering from local minima
From the log you can see that the loss value is still big compared to the first image, but at least it decrease on each iteration (even very very small). So I suggest you to:


try to use bigger learning rate, I think you model is underfiting.
try to use another weight initialization method


I think the first solution will solve this problem as I see no problem in the code.