mirror of
https://github.com/huggingface/pytorch-image-models.git
synced 2025-06-03 15:01:08 +08:00
Improve the parsable results dump at end of train, stop excessive output, only display top-10.
This commit is contained in:
parent
36b5d1adaa
commit
620cb4f3cb
21
train.py
21
train.py
@ -930,20 +930,29 @@ def main():
|
|||||||
# step LR for next epoch
|
# step LR for next epoch
|
||||||
lr_scheduler.step(epoch + 1, latest_metric)
|
lr_scheduler.step(epoch + 1, latest_metric)
|
||||||
|
|
||||||
results.append({
|
latest_results = {
|
||||||
'epoch': epoch,
|
'epoch': epoch,
|
||||||
'train': train_metrics,
|
'train': train_metrics,
|
||||||
'validation': eval_metrics,
|
}
|
||||||
})
|
if eval_metrics is not None:
|
||||||
|
latest_results['validation'] = eval_metrics
|
||||||
|
results.append(latest_results)
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
results = {'all': results}
|
|
||||||
if best_metric is not None:
|
if best_metric is not None:
|
||||||
results['best'] = results['all'][best_epoch - start_epoch]
|
# log best metric as tracked by checkpoint saver
|
||||||
_logger.info('*** Best metric: {0} (epoch {1})'.format(best_metric, best_epoch))
|
_logger.info('*** Best metric: {0} (epoch {1})'.format(best_metric, best_epoch))
|
||||||
print(f'--result\n{json.dumps(results, indent=4)}')
|
|
||||||
|
if utils.is_primary(args):
|
||||||
|
# for parsable results display, dump top-10 summaries to avoid excess console spam
|
||||||
|
display_results = sorted(
|
||||||
|
results,
|
||||||
|
key=lambda x: x.get('validation', x.get('train')).get(eval_metric, 0),
|
||||||
|
reverse=decreasing_metric,
|
||||||
|
)
|
||||||
|
print(f'--result\n{json.dumps(display_results[-10:], indent=4)}')
|
||||||
|
|
||||||
|
|
||||||
def train_one_epoch(
|
def train_one_epoch(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user