File size: 2,121 Bytes
5acfa1a
 
 
 
 
 
 
9713221
 
 
 
5acfa1a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import os
from pathlib import Path
from visualize import run_visualization

def get_opposite_dataset_path(run_folder):
    # Map run folders to their corresponding opposite dataset training files
    dataset_mapping = {
        'search_bryant_adjusted': './data/blog/datasets/youtube/adjusted',
        'search_bryant_random': './data/blog/datasets/youtube/random',
        'search_youtube_adjusted': './data/blog/datasets/bryant/adjusted',
        'search_youtube_random': './data/blog/datasets/bryant/random'
    }
    
    for folder_prefix, dataset_path in dataset_mapping.items():
        if run_folder.startswith(folder_prefix):
            return dataset_path
    return None

def process_runs(base_dir):
    # Get the full path to the runs directory
    runs_dir = Path(base_dir)
    
    # Process each search directory
    for search_dir in runs_dir.iterdir():
        if not search_dir.is_dir() or search_dir.name == 'visualization':
            continue
            
        # Get the opposite dataset path for this search directory
        opposite_dataset = get_opposite_dataset_path(search_dir.name)
        
        if opposite_dataset is not None:
            print(f"Skipping {search_dir.name} - no matching dataset mapping")
            continue
        
        # Process each trial directory within the search directory
        for trial_dir in search_dir.iterdir():
            if not trial_dir.is_dir() or not trial_dir.name.startswith('trial_'):
                continue
                
            print(f"Processing {trial_dir} with {opposite_dataset}")
            try:
                vis_dir, cm = run_visualization(
                    run_dir=str(trial_dir),
                    data_path=opposite_dataset,
                    test_csv=os.path.join(opposite_dataset, "train.csv")
                )
                print(f"Visualization complete: {vis_dir}")
            except Exception as e:
                print(f"Error processing {trial_dir}: {e}")

if __name__ == "__main__":
    # Example usage
    runs_path = "runs_hyperparam/hyperparam_20241106_124214"
    process_runs(runs_path)