fix logger (#426)

pull/430/head
littletomatodonkey 2020-11-25 19:45:43 +08:00 committed by GitHub
parent 18840f1f88
commit 6796bca110
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 7 deletions

View File

@ -433,6 +433,9 @@ def run(dataloader,
batch_time = AverageMeter('elapse', '.3f') batch_time = AverageMeter('elapse', '.3f')
tic = time.time() tic = time.time()
for idx, batch in enumerate(dataloader()): for idx, batch in enumerate(dataloader()):
# ignore the warmup iters
if idx == 5:
batch_time.reset()
batch_size = batch[0].shape()[0] batch_size = batch[0].shape()[0]
feed_dict = { feed_dict = {
key.name: batch[idx] key.name: batch[idx]
@ -441,15 +444,18 @@ def run(dataloader,
metrics = exe.run(program=program, metrics = exe.run(program=program,
feed=feed_dict, feed=feed_dict,
fetch_list=fetch_list) fetch_list=fetch_list)
batch_time.update(time.time() - tic) batch_time.update(time.time() - tic)
tic = time.time() tic = time.time()
for i, m in enumerate(metrics): for i, m in enumerate(metrics):
metric_list[i].update(np.mean(m), batch_size) metric_list[i].update(np.mean(m), batch_size)
if mode == "train": if mode == "train":
metric_list[-1].update(lr_scheduler.get_lr()) metric_list[-1].update(lr_scheduler.get_lr())
fetchs_str = ''.join([str(m.value) + ' ' fetchs_str = ''.join([str(m.value) + ' '
for m in metric_list] + [batch_time.value]) + 's' for m in metric_list] + [batch_time.value]) + 's'
ips_info = " ips: {:.5f} images/sec.".format(batch_size /
batch_time.val)
fetchs_str += ips_info
if lr_scheduler is not None: if lr_scheduler is not None:
if lr_scheduler.update_specified: if lr_scheduler.update_specified:
@ -483,15 +489,14 @@ def run(dataloader,
end_str = ''.join([str(m.mean) + ' ' end_str = ''.join([str(m.mean) + ' '
for m in metric_list] + [batch_time.total]) + 's' for m in metric_list] + [batch_time.total]) + 's'
ips_info = "ips: {:.5f} images/sec.".format(batch_size * batch_time.count /
batch_time.sum)
if mode == 'eval': if mode == 'eval':
logger.info("END {:s} {:s}s".format(mode, end_str)) logger.info("END {:s} {:s}s {:s}".format(mode, end_str, ips_info))
else: else:
end_epoch_str = "END epoch:{:<3d}".format(epoch) end_epoch_str = "END epoch:{:<3d}".format(epoch)
logger.info("{:s} {:s} {:s} {:s}".format(end_epoch_str, mode, end_str,
logger.info("{:s} {:s} {:s}".format( ips_info))
logger.coloring(end_epoch_str, "RED"),
logger.coloring(mode, "PURPLE"),
logger.coloring(end_str, "OKGREEN")))
# return top1_acc in order to save the best model # return top1_acc in order to save the best model
if mode == 'valid': if mode == 'valid':