ExperimentTracker API Reference
Overview
ExperimentTracker is the core class for managing experiments in ORruns.
from orruns import ExperimentTracker
tracker = ExperimentTracker(
name="experiment_name",
base_dir="./orruns_experiments"
)
Core Methods
Log Parameters
tracker.log_params({
"solver": "cplex",
"threads": 4,
"time_limit": 600
})
Log Metrics
tracker.log_metrics({
"objective": 123.45,
"solve_time": 10.5,
"gap": 0.01
})
Save Artifacts
# Save plots
tracker.log_artifact("convergence.png", plt.gcf())
# Save data files
tracker.log_artifact("solution.csv", df)
Context Manager
with ExperimentTracker("experiment_name") as tracker:
tracker.log_params({"solver": "gurobi"})
# Your experiment code
tracker.log_metrics({"objective": result.value})
Class Methods
Delete Experiments
# Delete specific experiment
ExperimentTracker.delete_experiment("experiment_name")
# Delete specific run
ExperimentTracker.delete_experiment(
"experiment_name",
run_id="run_20240315_123456"
)
Clean Old Experiments
# Delete experiments older than 30 days
ExperimentTracker.delete_all_experiments()
Properties
experiment_name: Name of the experimentrun_id: Unique identifier for current runbase_dir: Base directory for experiment data
Directory Structure
base_dir/
└── experiment_name/
└── run_id/
├── params/
│ └── params.json
├── metrics/
│ └── metrics.json
└── artifacts/
├── figures/
└── data/
Best Practices
- Use descriptive experiment names
- Log all relevant parameters
- Save intermediate results
- Use context manager for automatic cleanup
- Organize artifacts by type
Error Handling
Common errors and solutions:
| Error | Solution |
|---|---|
FileNotFoundError |
Check base directory exists |
PermissionError |
Check write permissions |
ValueError |
Verify parameter/metric format |