- Add validation framework (config, model, results, study validators) - Add Claude Code skills (create-study, run-optimization, generate-report, troubleshoot, analyze-model) - Add Atomizer Dashboard (React frontend + FastAPI backend) - Reorganize docs into structured directories (00-09) - Add neural surrogate modules and training infrastructure - Add multi-objective optimization support 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
228 lines
6.1 KiB
Markdown
228 lines
6.1 KiB
Markdown
# Optuna Dashboard Integration
|
|
|
|
Atomizer leverages Optuna's built-in dashboard for advanced real-time optimization visualization.
|
|
|
|
## Quick Start
|
|
|
|
### 1. Install Optuna Dashboard
|
|
|
|
```bash
|
|
# Using atomizer environment
|
|
conda activate atomizer
|
|
pip install optuna-dashboard
|
|
```
|
|
|
|
### 2. Launch Dashboard for a Study
|
|
|
|
```bash
|
|
# Navigate to your substudy directory
|
|
cd studies/simple_beam_optimization/substudies/full_optimization_50trials
|
|
|
|
# Launch dashboard pointing to the Optuna study database
|
|
optuna-dashboard sqlite:///optuna_study.db
|
|
```
|
|
|
|
The dashboard will start at http://localhost:8080
|
|
|
|
### 3. View During Active Optimization
|
|
|
|
```bash
|
|
# Start optimization in one terminal
|
|
python studies/simple_beam_optimization/run_optimization.py
|
|
|
|
# In another terminal, launch dashboard
|
|
cd studies/simple_beam_optimization/substudies/full_optimization_50trials
|
|
optuna-dashboard sqlite:///optuna_study.db
|
|
```
|
|
|
|
The dashboard updates in real-time as new trials complete!
|
|
|
|
---
|
|
|
|
## Dashboard Features
|
|
|
|
### **1. Optimization History**
|
|
- Interactive plot of objective value vs trial number
|
|
- Hover to see parameter values for each trial
|
|
- Zoom and pan for detailed analysis
|
|
|
|
### **2. Parallel Coordinate Plot**
|
|
- Multi-dimensional visualization of parameter space
|
|
- Each line = one trial, colored by objective value
|
|
- Instantly see parameter correlations
|
|
|
|
### **3. Parameter Importances**
|
|
- Identifies which parameters most influence the objective
|
|
- Based on fANOVA (functional ANOVA) analysis
|
|
- Helps focus optimization efforts
|
|
|
|
### **4. Slice Plot**
|
|
- Shows objective value vs individual parameters
|
|
- One plot per design variable
|
|
- Useful for understanding parameter sensitivity
|
|
|
|
### **5. Contour Plot**
|
|
- 2D contour plots of objective surface
|
|
- Select any two parameters to visualize
|
|
- Reveals parameter interactions
|
|
|
|
### **6. Intermediate Values**
|
|
- Track metrics during trial execution (if using pruning)
|
|
- Useful for early stopping of poor trials
|
|
|
|
---
|
|
|
|
## Advanced Usage
|
|
|
|
### Custom Port
|
|
|
|
```bash
|
|
optuna-dashboard sqlite:///optuna_study.db --port 8888
|
|
```
|
|
|
|
### Multiple Studies
|
|
|
|
```bash
|
|
# Compare multiple optimization runs
|
|
optuna-dashboard sqlite:///substudy1/optuna_study.db sqlite:///substudy2/optuna_study.db
|
|
```
|
|
|
|
### Remote Access
|
|
|
|
```bash
|
|
# Allow connections from other machines
|
|
optuna-dashboard sqlite:///optuna_study.db --host 0.0.0.0
|
|
```
|
|
|
|
---
|
|
|
|
## Integration with Atomizer Workflow
|
|
|
|
### Study Organization
|
|
|
|
Each Atomizer substudy has its own Optuna database:
|
|
|
|
```
|
|
studies/simple_beam_optimization/
|
|
├── substudies/
|
|
│ ├── full_optimization_50trials/
|
|
│ │ ├── optuna_study.db # ← Optuna database (SQLite)
|
|
│ │ ├── optuna_study.pkl # ← Optuna study object (pickle)
|
|
│ │ ├── history.json # ← Atomizer history
|
|
│ │ └── plots/ # ← Matplotlib plots
|
|
│ └── validation_3trials/
|
|
│ └── optuna_study.db
|
|
```
|
|
|
|
### Visualization Comparison
|
|
|
|
**Optuna Dashboard** (Interactive, Web-based):
|
|
- ✅ Real-time updates during optimization
|
|
- ✅ Interactive plots (zoom, hover, filter)
|
|
- ✅ Parameter importance analysis
|
|
- ✅ Multiple study comparison
|
|
- ❌ Requires web browser
|
|
- ❌ Not embeddable in reports
|
|
|
|
**Atomizer Matplotlib Plots** (Static, High-quality):
|
|
- ✅ Publication-quality PNG/PDF exports
|
|
- ✅ Customizable styling and annotations
|
|
- ✅ Embeddable in reports and papers
|
|
- ✅ Offline viewing
|
|
- ❌ Not interactive
|
|
- ❌ Not real-time
|
|
|
|
**Recommendation**: Use **both**!
|
|
- Monitor optimization in real-time with Optuna Dashboard
|
|
- Generate final plots with Atomizer visualizer for reports
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### "No studies found"
|
|
|
|
Make sure you're pointing to the correct database file:
|
|
|
|
```bash
|
|
# Check if optuna_study.db exists
|
|
ls studies/*/substudies/*/optuna_study.db
|
|
|
|
# Use absolute path if needed
|
|
optuna-dashboard sqlite:///C:/Users/antoi/Documents/Atomaste/Atomizer/studies/simple_beam_optimization/substudies/full_optimization_50trials/optuna_study.db
|
|
```
|
|
|
|
### Database Locked
|
|
|
|
If optimization is actively writing to the database:
|
|
|
|
```bash
|
|
# Use read-only mode
|
|
optuna-dashboard sqlite:///optuna_study.db?mode=ro
|
|
```
|
|
|
|
### Port Already in Use
|
|
|
|
```bash
|
|
# Use different port
|
|
optuna-dashboard sqlite:///optuna_study.db --port 8888
|
|
```
|
|
|
|
---
|
|
|
|
## Example Workflow
|
|
|
|
```bash
|
|
# 1. Start optimization
|
|
python studies/simple_beam_optimization/run_optimization.py
|
|
|
|
# 2. In another terminal, launch Optuna dashboard
|
|
cd studies/simple_beam_optimization/substudies/full_optimization_50trials
|
|
optuna-dashboard sqlite:///optuna_study.db
|
|
|
|
# 3. Open browser to http://localhost:8080 and watch optimization live
|
|
|
|
# 4. After optimization completes, generate static plots
|
|
python -m optimization_engine.visualizer studies/simple_beam_optimization/substudies/full_optimization_50trials png pdf
|
|
|
|
# 5. View final plots
|
|
explorer studies/simple_beam_optimization/substudies/full_optimization_50trials/plots
|
|
```
|
|
|
|
---
|
|
|
|
## Optuna Dashboard Screenshots
|
|
|
|
### Optimization History
|
|

|
|
|
|
### Parallel Coordinate Plot
|
|

|
|
|
|
### Parameter Importance
|
|

|
|
|
|
---
|
|
|
|
## Further Reading
|
|
|
|
- [Optuna Dashboard Documentation](https://optuna-dashboard.readthedocs.io/)
|
|
- [Optuna Visualization Module](https://optuna.readthedocs.io/en/stable/reference/visualization/index.html)
|
|
- [fANOVA Parameter Importance](https://optuna.readthedocs.io/en/stable/reference/generated/optuna.importance.FanovaImportanceEvaluator.html)
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
| Feature | Optuna Dashboard | Atomizer Matplotlib |
|
|
|---------|-----------------|-------------------|
|
|
| Real-time updates | ✅ Yes | ❌ No |
|
|
| Interactive | ✅ Yes | ❌ No |
|
|
| Parameter importance | ✅ Yes | ⚠️ Manual |
|
|
| Publication quality | ⚠️ Web only | ✅ PNG/PDF |
|
|
| Embeddable in docs | ❌ No | ✅ Yes |
|
|
| Offline viewing | ❌ Needs server | ✅ Yes |
|
|
| Multi-study comparison | ✅ Yes | ⚠️ Manual |
|
|
|
|
**Best Practice**: Use Optuna Dashboard for monitoring and exploration, Atomizer visualizer for final reporting.
|