From fe44611fab50fa8813ee33b3c1cfff37d97688e7 Mon Sep 17 00:00:00 2001 From: "A. Unique TensorFlower" Date: Fri, 10 Jan 2020 13:20:18 -0800 Subject: [PATCH] Fix overflowed percentages in the profiler's Overview Page. PiperOrigin-RevId: 289152753 Change-Id: Ia9d7e624d53014efe1be1b066cc97884453814bd --- .../op_stats_to_input_pipeline_analysis.cc | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tensorflow/core/profiler/convert/op_stats_to_input_pipeline_analysis.cc b/tensorflow/core/profiler/convert/op_stats_to_input_pipeline_analysis.cc index 84d284ae81d..05c7ab5ebf9 100644 --- a/tensorflow/core/profiler/convert/op_stats_to_input_pipeline_analysis.cc +++ b/tensorflow/core/profiler/convert/op_stats_to_input_pipeline_analysis.cc @@ -53,11 +53,21 @@ double GetTimeInMs(const Collection& type_ps, EventType event_type) { StepSummary GetStepSummaryForSampleStats(const Stat& sample_stats) { StepSummary step_time_summary; - step_time_summary.set_average(sample_stats.avg()); - step_time_summary.set_standard_deviation( - std::sqrt(sample_stats.sample_variance())); - step_time_summary.set_minimum(sample_stats.min()); - step_time_summary.set_maximum(sample_stats.max()); + double avg, sdv, min, max; + if (sample_stats.empty()) { + // If sample_stats is empty, sample_stats.avg() will return NaN. However, we + // prefer to show an 0 instead. + avg = sdv = min = max = 0.0; + } else { + avg = sample_stats.avg(); + sdv = std::sqrt(sample_stats.sample_variance()); + min = sample_stats.min(); + max = sample_stats.max(); + } + step_time_summary.set_average(avg); + step_time_summary.set_standard_deviation(sdv); + step_time_summary.set_minimum(min); + step_time_summary.set_maximum(max); return step_time_summary; }