Hi Silk!
I haven’t looked at all of your code, but I do see one clear problem (below).



 Silk:


model = torch.nn.Sequential(
torch.nn.Linear(2000, 15),
torch.nn.Linear(15, 2),
)



Your Sequential chains two Linears together without any intervening
non-linear “activation.”  This becomes equivalent to a single layer, namely
Linear (2000, 2).
You want something like:
model = torch.nn.Sequential (
    torch.nn.Linear (2000, 15),
    torch.nn.ReLU(),
    torch.nn.Linear (15, 2),
)

(or Tanh or other non-linear activation).
I’m only guessing here, but you probably also want a deeper network,
that is, one with more layers.  So you might want three Linears (or maybe
more), again separated non-linear activations.
Best.
K. Frank