def _parse_metrics_from_tb_events()

in notebooks/utils.py [0:0]


def _parse_metrics_from_tb_events(summary_dir, out_file):
    """ Parse TensorBoard events files and log results to csv
    
    Adapted from 
    https://github.com/google-research/text-to-text-transfer-transformer/blob/main/t5/scripts/parse_tb.py
    """
    try:
        # Reading event directories
        subdirs = tf.io.gfile.listdir(summary_dir)
        summary_dirs = [os.path.join(summary_dir, d.rstrip('/')) for d in subdirs]

        # Parsing event files
        scores = None
        for d in summary_dirs:
            events = eval_utils.parse_events_files(d, True)
            task_metrics = eval_utils.get_eval_metric_values(
                events,
                task_name=os.path.basename(d))
            if scores:
                scores.update(task_metrics)
            else:
                scores = task_metrics

        if not scores:
            print(f"No evaluation events found in {summary_dir}")

        # Computing and formatting metrics
        df = eval_utils.scores_to_df(scores)
        df = eval_utils.compute_avg_glue(df)
        df = eval_utils.sort_columns(df)

        # Writing metrics to output file
        eval_utils.log_csv(df, output_file=out_file)
    except Exception as e:
        print(e)
        print('Failed to parse TensorBoard event files')