,可以通过以下步骤实现:
import torch
import torch.nn.functional as F
from sklearn.metrics import f1_score
model = YourModel() # 替换为你的模型
model.load_state_dict(torch.load('model_weights.pth')) # 替换为你的模型权重文件路径
test_dataset = YourDataset() # 替换为你的测试数据集
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=64, shuffle=False)
model.eval()
true_labels = []
pred_labels = []
with torch.no_grad():
for inputs, labels in test_loader:
outputs = model(inputs)
_, predicted = torch.max(outputs, 1)
true_labels.extend(labels.tolist())
pred_labels.extend(predicted.tolist())
f1 = f1_score(true_labels, pred_labels, average='weighted')
在上述代码中,我们使用了sklearn库中的f1_score函数来计算F1分数。其中,true_labels是真实标签的列表,pred_labels是模型预测的标签的列表。average参数设置为'weighted',表示计算加权平均的F1分数。
至于PyTorch中的F1分数计算函数,目前官方库中并没有直接提供。因此,我们使用了sklearn库中的函数来实现。
对于多类分类的F1分数,它是一种综合了精确率和召回率的评估指标,用于衡量模型在多类分类任务中的性能。F1分数的取值范围为0到1,值越接近1表示模型的性能越好。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云