in demucs/grids/_explorers.py [0:0]
def process_history(self, history):
train = {
'epoch': len(history),
}
valid = {}
test = {}
best_v_main = float('inf')
breco = float('inf')
for metrics in history:
train.update(metrics['train'])
valid.update(metrics['valid'])
if 'main' in metrics['valid']:
best_v_main = min(best_v_main, metrics['valid']['main']['loss'])
valid['bmain'] = best_v_main
valid['breco'] = min(breco, metrics['valid']['reco'])
breco = valid['breco']
if (metrics['valid']['loss'] == metrics['valid']['best'] or
metrics['valid'].get('nsdr') == metrics['valid']['best']):
for k, v in metrics['valid'].items():
if k.startswith('reco_'):
valid['b_' + k[len('reco_'):]] = v
if k.startswith('nsdr'):
valid[f'b_{k}'] = v
if 'test' in metrics:
test.update(metrics['test'])
metrics = history[-1]
return {"train": train, "valid": valid, "test": test}