lloydakresi's picture
containerized the API
3c64996
Raw
History Blame Contribute Delete
777 Bytes
import torch
import numpy as np
from sklearn.metrics import f1_score
from transformers import AutoModelForSequenceClassification
from scripts.train import val_ds, trainer
trainer.model = AutoModelForSequenceClassification.from_pretrained("final_model")
logits, labels, _ = trainer.predict(val_ds)
probs = 1 / (1 + np.exp(-logits))
label_cols = ["toxic", "severe_toxic", "obscene", "threat", "insult", "identity_hate"]
best_thresholds = []
for i in range(labels.shape[1]):
best_t, best_f1 = 0.5, 0
for t in np.arange(0.2, 0.8, 0.02):
f1 = f1_score(labels[:, i], (probs[:, i] >= t).astype(int), zero_division=0)
if f1 > best_f1:
best_f1, best_t = f1, t
best_thresholds.append((label_cols[i], best_t, best_f1))
print(best_thresholds)