def visdom_reporting(metrics, tick, phase, tick_type=None):
"""This method will write its results to visdom
:param metrics: A map of metrics to scores
:param tick: The time (resolution defined by `tick_type`)
:param phase: The phase of training (`Train`, `Valid`, `Test`)
:param tick_type: The resolution of tick (`STEP`, `EPOCH`)
:return:
"""
# To use this:
# python -m visdom.server
# http://localhost:8097/
global g_vis
global g_vis_win
if g_vis is None:
import visdom
print('Creating g_vis instance')
g_vis = visdom.Visdom()
for metric in metrics.keys():
chart_id = '(%s) %s' % (phase, metric)
if chart_id not in g_vis_win:
print('Creating visualization for %s' % chart_id)
g_vis_win[chart_id] = g_vis.line(X=np.array([0]),
Y=np.array([metrics[metric]]),
opts=dict(
fillarea=True,
legend=False,
xlabel='Time',
ylabel='Metric',
title=chart_id,
),
)
else:
g_vis.updateTrace(X=np.array([tick]), Y=np.array([metrics[metric]]), win=g_vis_win[chart_id])
评论列表
文章目录