跑深度学习训练时,需要找到指标最好的模型作为训练结果,可以使用下面的程序寻找。
解释:roc_auc_score:求任一评价指标的函数,返回的是一个数值
s_obs = Score_Observer('AUROC')
s_obs.update(roc_auc_score(is_anomaly, anomaly_score), epoch,
print_score=True)
class Score_Observer:
def __init__(self, name):
self.name = name
self.max_epoch = 0
self.max_score = 0
self.last = 0
def update(self, score, epoch, print_score=False):
self.last = score
if self.max_score == None or score > self.max_score:
self.max_score = score
self.max_epoch = epoch
if print_score:
self.print_score()
def print_score(self):
print('{:s}: \t last: {:.4f} \t max: {:.4f} \t epoch_max: {:d}'.format(self.name, self.last, self.max_score, self.max_epoch))