Can I export a tensorflow summary to CSV?

后端 未结 4 812
太阳男子
太阳男子 2020-12-14 18:07

Is there a way to extract scalar summaries to CSV (preferably from within tensorboard) from tfevents files?

Example code

The following code generates tfeve

4条回答
  •  旧巷少年郎
    2020-12-14 18:41

    Just to add to @Spen

    in case you want to export the data when you have varying numbers of steps. This will make one large csv file. Might need to change around the keys for it to work for you.

    import os
    import numpy as np
    import pandas as pd
    
    from collections import defaultdict
    from tensorboard.backend.event_processing.event_accumulator import EventAccumulator
    import glob
    import pandas as pd
    listOutput = (glob.glob("*/"))
    
    listDF = []
    
    for tb_output_folder in listOutput:
     print(tb_output_folder)
     x = EventAccumulator(path=tb_output_folder)
     x.Reload()
     x.FirstEventTimestamp()
     keys = ['loss', 'mean_absolute_error', 'val_loss', 'val_mean_absolute_error'] 
    
     listValues = {}
    
     steps = [e.step for e in x.Scalars(keys[0])]
     wall_time = [e.wall_time for e in x.Scalars(keys[0])]
     index = [e.index for e in x.Scalars(keys[0])]
     count = [e.count for e in x.Scalars(keys[0])]
     n_steps = len(steps)
     listRun = [tb_output_folder] * n_steps
     printOutDict = {}
    
     data = np.zeros((n_steps, len(keys)))
     for i in range(len(keys)):
         data[:,i] = [e.value for e in x.Scalars(keys[i])]
    
     printOutDict = {keys[0]: data[:,0], keys[1]: data[:,1],keys[2]: data[:,2],keys[3]: data[:,3]}
    
     printOutDict['Name'] = listRun
    
     DF = pd.DataFrame(data=printOutDict)
    
     listDF.append(DF)
    
    df = pd.concat(listDF)
    df.to_csv('Output.csv')   
    
    

提交回复
热议问题