# load metrics accuracy = evaluate.load("accuracy") auc_score = evaluate.load("roc_auc") def compute_metrics(eval_pred): # get predictions predictions, labels = eval_pred # apply softmax to get probabilities probabilities = np.exp(predictions) / np.exp(predictions).sum(-1, keepdims=True) # use probabilities of the positive class for ROC AUC positive_class_probs = probabilities[:, 1] # compute auc auc = np.round(auc_score.compute(prediction_scores=positive_class_probs, references=labels)['roc_auc'],3) # predict most probable class predicted_classes = np.argmax(predictions, axis=1) # compute accuracy acc = np.round(accuracy.compute(predictions=predicted_classes, references=labels)['accuracy'],3) return {"Accuracy": acc, "AUC": auc}