Thanks for helping me out on point 1.
As for data loader, I have changed up the code for #### start the engines #### as follows
for epoch in range(EPOCHS):
	for data in trainset:
		x_temp = data[:, 0:8]
		#x_temp = sc.fit_transform(x_temp)
		y_temp = data[:, 8][..., None]

		y_output_pred = net(x_temp)
		loss = loss_function(y_output_pred, y_temp)
		optimizer.zero_grad()
		loss.backward()
		optimizer.step()
	print(loss)

basically I moved the x_temp and y_temp down into the epochs
Now the problem is the loss function just won’t decrease anymore, instead it goes all over the place. Is there anyway to solve that?
Lastly, im definitely sure that my architecture here is not well designed at all, do you have any suggestions?