Hi there I was trying to use nn.Sequential module in a simple regression problem, just a line. The thing is that I print MSELoss every iteration and it is trying to converge at 1, intead of the values I am wondering.
Here is the code:
NN = nn.Sequential(
    nn.Linear(1,3),
    nn.Sigmoid(),
    nn.Linear(3,4),
    nn.Sigmoid(),
    nn.Linear(4,7),
    nn.Sigmoid(),
    nn.Linear(7,1),
    nn.Sigmoid()
)

criterion = nn.MSELoss()
optimizer = optim.Adam(NN.parameters(), lr=0.01)

X = torch.rand(200,1)
y = 2*X + 3

print(X.shape,y.shape)
for i in range(1000):  
    NN.train()
    optimizer.zero_grad()
    out = NN(X)
    #print(out,y)
    loss = criterion(y,out)
    loss.backward()
    optimizer.step()

    with torch.no_grad():
        print ("#" + str(i) + " Loss: " + str(loss.item()))  

If I try this to check the results:
newX = []
newY = []
for i in range(5):
    r = random.uniform(0, 1)
    newX.append(r)
    newY.append(NN(torch.tensor([r])).item())

I get [0.9996629953384399, 0.9996600151062012, 0.9996635913848877, 0.9996637105941772, 0.9996615648269653].
I have tryed lot of things changing every on the network but don’t know what is happening.