Мне нравится факел, потому что очень легко отслеживать и отлаживать параметры, но у меня всегда возникают проблемы с регрессией факелов
class Net(torch.nn.Module):
def __init__(self, n_feature, n_hidden, n_output):
super(Net, self).__init__()
self.hidden = torch.nn.Linear(n_feature, n_hidden)
self.predict = torch.nn.Linear(n_hidden, n_output)
def forward(self, x):
x = F.relu(self.hidden(x))
x = self.predict(x)
return x
Это простая сеть, и затем всякий раз, когда я пытался тренироваться, используя некоторые данные, как показано ниже
import sklearn.datasets as datasets
X_,y_=datasets.make_regression(n_samples=500,n_features=2,noise=0.1)
X = torch.from_numpy(X_).float()
y = torch.from_numpy(y_).float()
net = Net(n_feature=2, n_hidden=10, n_output=1)
print(net)
optimizer = torch.optim.SGD(net.parameters(), lr=0.2)
loss_func = torch.nn.MSELoss()
for t in range(2000):
prediction = net(X)
loss = loss_func(prediction, y)
optimizer.zero_grad()
loss.backward()
optimizer.step()
if t % 5 == 0:
print(loss.data.numpy())
Я пытался настроить гиперпараметры, такие как количество узлов и скорость обучения, а также пытался изменить оптимизатор и функцию потерь, но выглядит не так уж и много улучшений.
Есть ли какая-либо проблема в приведенном выше коде, или кто-то также имел плохое время с регрессией факелов?