我制作了一个使用 PyTorch 进行深度学习的 Python 项目。我在计算 F1 分数时收到以下错误消息:
'Classification metrics can't handle a mix of multiclass-multioutput
and multilabel-indicator targets'
我的代码:
model = nn.Sequential(
nn.Linear(135, 50),
nn.ReLU(),
nn.Linear(50, 50),
nn.ReLU(),
nn.Linear(50, max_length),
nn.Sigmoid()
)
epochs = 1000
loss_fn = nn.BCEWithLogitsLoss()
optimizer = optim.SGD(model.parameters(), lr=0.1)
model.train()
for epoch in range(epochs):
for X_train, y_train in Dataloader:
y_pred = model(X_train)
# Convert the target tensor to torch.float32 data type
y_train = y_train.float()
loss = loss_fn(y_pred, y_train)
optimizer.zero_grad()
loss.backward()
print(loss.item())
optimizer.step()
model.eval()
y_pred = model(X_test)
y_pred = (y_pred > 0.5).float() # Threshold the probabilities to get binary predictions
acc = (y_pred == y_test).float().mean()
print("Model accuracy: %.2f%%" % (acc*100))
如有任何帮助,我们将不胜感激。谢谢。
您会收到此错误,因为您将这些指标全部计算在内。它们应该按类计算。