diff --git a/visualdl/server/lib.py b/visualdl/server/lib.py index b6791853ac9d3701fa77d956f83daff4501669f8..1e03e3bc7639941f7cc2f16f12d1476b9738d58f 100644 --- a/visualdl/server/lib.py +++ b/visualdl/server/lib.py @@ -20,6 +20,7 @@ import time import os import io import csv +import math import numpy as np from visualdl.server.log import logger from visualdl.io import bfile @@ -39,6 +40,12 @@ def s2ms(timestamp): return timestamp * 1000 if timestamp < 2000000000 else timestamp +def transfer_abnomal_scalar_value(scalar_value): + if math.isnan(scalar_value) or math.isinf(scalar_value): + scalar_value = str(scalar_value) + return scalar_value + + def get_components(log_reader): components = log_reader.components(update=True) return list(components) @@ -238,7 +245,7 @@ def get_hparam_metric(log_reader, run, tag): log_reader.load_new_data() records = log_reader.data_manager.get_reservoir("scalar").get_items( run, decode_tag(tag)) - results = [[s2ms(item.timestamp), item.id, item.value] for item in records] + results = [[s2ms(item.timestamp), item.id, transfer_abnomal_scalar_value(item.value)] for item in records] return results @@ -288,7 +295,7 @@ def get_scalar(log_reader, run, tag): log_reader.load_new_data() records = log_reader.data_manager.get_reservoir("scalar").get_items( run, decode_tag(tag)) - results = [[s2ms(item.timestamp), item.id, item.value] for item in records] + results = [[s2ms(item.timestamp), item.id, transfer_abnomal_scalar_value(item.value)] for item in records] return results