paddlenlp二分类引入评估召回率F1指标 paddle.metric Accuracy
每个具体的参数代表什么,明确好。无非就是第几个样本,属于某个类别的概率,非常清晰from paddlenlp.metrics import AccuracyAndF1@paddle.no_grad()def evaluate(model, criterion, metric, data_loader):"""Given a dataset, it evals model and computes
·
每个具体的参数代表什么,明确好。无非就是第几个样本,属于某个类别的概率,非常清晰
from paddlenlp.metrics import AccuracyAndF1
@paddle.no_grad()
def evaluate(model, criterion, metric, data_loader):
"""
Given a dataset, it evals model and computes the metric.
Args:
model(obj:`paddle.nn.Layer`): A model to classify texts.
data_loader(obj:`paddle.io.DataLoader`): The dataset loader which generates batches.
criterion(obj:`paddle.nn.Layer`): It can compute the loss.
metric(obj:`paddle.metric.Metric`): The evaluation metric.
"""
model.eval()
metric.reset()
losses = []
for batch in data_loader:
input_ids, token_type_ids, labels = batch
logits = model(input_ids, token_type_ids)
loss = criterion(logits, labels)
losses.append(loss.numpy())
correct = metric.compute(logits, labels)
metric.update(correct)
res = metric.accumulate()
print(
"eval loss: %f, acc: %s, precision: %s, recall: %s, f1: %s, acc and f1: %s, "
% (
np.mean(losses),
res[0],
res[1],
res[2],
res[3],
res[4],))
model.train()
metric.reset()
return res[0], res[1], res[2], res[3], res[4]
更多推荐
所有评论(0)