Почему регрессионная модель, построенная с использованием факела, не работает? - PullRequest
0 голосов
/ 12 мая 2019

Мне нравится факел, потому что очень легко отслеживать и отлаживать параметры, но у меня всегда возникают проблемы с регрессией факелов

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())

Я пытался настроить гиперпараметры, такие как количество узлов и скорость обучения, а также пытался изменить оптимизатор и функцию потерь, но выглядит не так уж и много улучшений. Есть ли какая-либо проблема в приведенном выше коде, или кто-то также имел плохое время с регрессией факелов?

...