The reprex is extremely helpful; it gives us something concrete to talk about.
When I ran your code I got two different results:
+ Actual = red_test[, 12]))
Actual
Predicted low lower_middle higher_middle high
low 1 1 0 0
lower_middle 10 96 48 4
higher_middle 3 34 69 18
high 0 1 9 18
Actual
Predicted low lower_middle higher_middle high
low 2 5 0 0
lower_middle 7 97 40 2
higher_middle 2 25 66 23
high 0 2 13 24
Nothing in the argument or data changed. Just to be sure, is that what you mean by 'convergence'? (BTW: I'm a newbie in NN, but I'm an old hand at trouble shooting, once I understand the question, so bear with me.)