用的pytorch,来寻找x与y之间的关系,但是神经网络拟合完一直是一条直线,处于欠拟合的状态.
真的为什么很奇怪啊?难道说这个数据有问题么?

这是为什么
```python
class Net(nn.Module):
def __init__(self, hidden_size):
super(Net, self).__init__()
self.fc1 = nn.Linear(1, hidden_size)
self.relu1 = nn.LeakyReLU()
self.fc2 = nn.Linear(hidden_size, hidden_size)
self.relu2 = nn.LeakyReLU()
self.fc3 = nn.Linear(hidden_size, hidden_size)
self.relu3 = nn.LeakyReLU()
self.fc4 = nn.Linear(hidden_size, hidden_size)
self.relu4 = nn.LeakyReLU()
self.fc5 = nn.Linear(hidden_size, hidden_size)
self.relu5 = nn.LeakyReLU()
self.fc6 = nn.Linear(hidden_size, hidden_size)
self.relu6 = nn.LeakyReLU()
self.fc7 = nn.Linear(hidden_size, hidden_size)
self.relu7 = nn.LeakyReLU()
self.fc8 = nn.Linear(hidden_size, hidden_size)
self.relu8 = nn.LeakyReLU()
self.fc9 = nn.Linear(hidden_size, hidden_size)
self.relu9 = nn.Sigmoid()
self.fc10 = nn.Linear(hidden_size, 1)
def forward(self, x):
x = self.fc1(x)
x = self.relu1(x)
x = self.fc2(x)
x = self.relu2(x)
x = self.fc3(x)
x = self.relu3(x)
x = self.fc4(x)
x = self.relu4(x)
x = self.fc5(x)
x = self.relu5(x)
x = self.fc6(x)
x = self.relu6(x)
x = self.fc7(x)
x = self.relu7(x)
x = self.fc8(x)
x = self.relu8(x)
x = self.fc9(x)
x = self.relu9(x)
x = self.fc10(x)
return x
#省略数据读取处理部分
model = Net(64).to(device)
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.0001)
for epoch in range(10000):
# 前向传播
outputs = model(inputs)
loss = criterion(outputs, y)
# 反向传播和优化
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch + 1) % 100 == 0:
print(f'Epoch {epoch+1}, Loss: {loss.item()}')