Merging Log Files#
After running parallel split experiments, you need to merge the split log files before plotting. Malet provides both a CLI tool and a Python API.
CLI tool (malet-merge)#
# Merge all .tsv files in a folder
malet-merge -folder {log_folder_path}
# Merge specific files only
malet-merge -folder {log_folder_path} -files 'split_0.tsv split_1.tsv'
# Merge with a custom output path
malet-merge -folder {log_folder_path} -save_path {output_path}
By default, the merged log is saved as log_merged.tsv in the specified folder.
Python API#
Merge all logs in a folder#
from malet.experiment import ExperimentLog
merged_log = ExperimentLog.merge_folder({log_folder_path})
merged_log.to_tsv({save_path})
Merge specific files#
from malet.experiment import ExperimentLog
names = ['split_0', 'split_1', 'split_2']
merged_log = ExperimentLog.merge_tsv(names, {log_folder_path})
merged_log.to_tsv({save_path})
Both merge_tsv and merge_folder return the merged ExperimentLog without saving. Pass save_path to save automatically, or call to_tsv() on the result.
Resplitting#
To re-partition logs into a different number of splits (or merge everything into one):
from malet.experiment import Experiment
# Merge all splits into a single log.tsv
Experiment.resplit_logs('./experiments/{exp_folder}', target_split=1)
# Re-split into 4 new partitions
Experiment.resplit_logs('./experiments/{exp_folder}', target_split=4)
Duplicate resolution#
If logs have overlapping configs with conflicting metric values, use drop_duplicates() for interactive resolution:
log = ExperimentLog.from_tsv('log.tsv')
log.drop_duplicates()
log.to_tsv()
See ExperimentLog API Reference for more log manipulation methods.