在Python中计算F1分数和其他指标时出现错误

问题描述 投票:0回答:1

我制作了一个使用 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))

如有任何帮助,我们将不胜感激。谢谢。

python deep-learning pytorch
1个回答
0
投票

您会收到此错误,因为您将这些指标全部计算在内。它们应该按类计算。

© www.soinside.com 2019 - 2024. All rights reserved.