【发布时间】:2020-11-28 21:39:05
【问题描述】:
我之前发布过,但我发布了一个不同的神经网络,我试图在同一个数据集上运行。我正在尝试在 sklearn 数据集上运行。 这是我迄今为止编写的代码:
X, y = make_moons(200, noise=0.2, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=1, stratify = y)
class MultiLayerPerceptron(nn.Module):
def __init__(self):
super(MultiLayerPerceptron, self).__init__()
self.fc1 = nn.Sigmoid()
self.fc2 = nn.Sigmoid()
self.fc3 = nn.Sigmoid()
def forward(self, x):
x = F.relu(self.fc1(x))
x = F.relu(self.fc2(x))
x = self.fc3(x)
return x
model = MultiLayerPerceptron)
optimizer = torch.optim.Adam(model.parameters(), lr = 0.001)
loss_fn = nn.CrossEntropyLoss()
epochs = 1000
def print_(loss):
print("Loss", loss)
x, y = Variable (torch.from_numpy(X_train)).float(), Variable(torch.from_numpy(y_train)).long()
for epoch in range(1, epochs + 1):
print("Epoch #", epoch)
y_pred = model(x)
loss = loss_fn(y_pred, y)
print_(loss.item())
optimizer.zero_grad()
loss.backward()
optimizer.step()
x_test = Variable(torch.from_numpy(X_test)).float()
model.eval()
pred = model(x_test)
pred = pred.detach().numpy()
print("Accuracy", accuracy_score(y_test, np.argmax(pred, axis = 1)))
但是当我运行它时,我得到了这个错误:
line 47, in __init__
raise ValueError("optimizer got an empty parameter list")
ValueError: optimizer got an empty parameter list
我正在尝试运行一个 3 层神经网络来对数据集进行分类,但我不知道是什么阻止了它运行。
【问题讨论】:
标签: machine-learning neural-network pytorch