Solved by ptrblck in post #4 
              
              
                Thanks for the code. 
In your test phase you are recreating a new model and thus lose all training progress: 
#see the trained outputs
net = Network(train_x.shape[1], train_y.shape[1])
net.eval()

Reusing your trained model instance yields a prediction which approximates the target curve.