diff --git a/apps/trainers/FaceAligner/FaceAlignerTrainerApp.py b/apps/trainers/FaceAligner/FaceAlignerTrainerApp.py index da70167..e045021 100644 --- a/apps/trainers/FaceAligner/FaceAlignerTrainerApp.py +++ b/apps/trainers/FaceAligner/FaceAlignerTrainerApp.py @@ -369,9 +369,11 @@ class FaceAlignerTrainerApp: d = len(lh) // max_lines lh_ar = np.array(lh[-d*max_lines:], np.float32) - lh_ar = lh_ar.reshape( (max_lines, d)).mean(-1) - - print( '\n'.join( f'{value:.5f}' for value in lh_ar ) ) + lh_ar = lh_ar.reshape( (max_lines, d)) + lh_ar_max, lh_ar_min, lh_ar_mean, lh_ar_median = lh_ar.max(-1), lh_ar.min(-1), lh_ar.mean(-1), np.median(lh_ar, -1) + + + print( '\n'.join( f'max:[{max_value:.5f}] min:[{min_value:.5f}] mean:[{mean_value:.5f}] median:[{median_value:.5f}]' for max_value, min_value, mean_value, median_value in zip(lh_ar_max, lh_ar_min, lh_ar_mean, lh_ar_median) ) ) dlg.recreate().set_current() diff --git a/xlib/torch/optim/AdaBelief.py b/xlib/torch/optim/AdaBelief.py index aedc91f..ee06716 100644 --- a/xlib/torch/optim/AdaBelief.py +++ b/xlib/torch/optim/AdaBelief.py @@ -1,5 +1,4 @@ import torch -import numpy as np class AdaBelief(torch.optim.Optimizer): def __init__(self, params, lr=1e-3, betas=(0.9, 0.999), eps=1e-16, @@ -39,21 +38,15 @@ class AdaBelief(torch.optim.Optimizer): grad.add_(p.data, alpha=group['weight_decay']) state['step'] += 1 - + m_t, v_t = state['m_t'], state['v_t'] m_t.mul_(beta1).add_( grad , alpha=1 - beta1) v_t.mul_(beta2).add_( (grad - m_t)**2 , alpha=1 - beta2) - + v_diff = (-group['lr'] * m_t).div_( v_t.sqrt().add_(group['eps']) ) - + if group['lr_dropout'] < 1.0: lrd_rand = torch.ones_like(p.data) v_diff *= torch.bernoulli(lrd_rand * group['lr_dropout'] ) - - # from xlib.console.diacon import Diacon - # Diacon.stop() - # import code - # code.interact(local=dict(globals(), **locals())) - p.data.add_(v_diff)