Well if you want to train a network, back-prop is strongly encouraged…
And by the way, your training loop range(0, 16, 331) does not really make sense, as the range arguments are start, end, step (with end not included).