# Experiment Comparison

Track multiple experiments and compare results across architectures.

```python
"""Compare multiple experiments."""
from ml_dash import Experiment
import random

def train_model(architecture, experiment):
    base_acc = {"cnn": 0.85, "resnet": 0.90, "vit": 0.92}[architecture]
    epochs = 20
    for epoch in range(epochs):
        acc = min(base_acc, 0.5 + epoch * (base_acc - 0.5) / epochs + random.uniform(-0.02, 0.02))
        experiment.metrics("train").log(accuracy=acc, epoch=epoch)
    return acc

def compare_architectures():
    architectures = ["cnn", "resnet", "vit"]
    results = {}

    for arch in architectures:
        with Experiment(
            prefix=f"alice/architecture-comparison/comparison-{arch}",
            readme=f"Training {arch} on CIFAR-10",
            tags=["comparison", arch, "cifar10"]
        ).run as experiment:
            experiment.params.set(architecture=arch, dataset="cifar10", batch_size=128, epochs=20)
            experiment.log(f"Training {arch} architecture")

            final_acc = train_model(arch, experiment)
            experiment.log(f"Final accuracy: {final_acc:.4f}")
            results[arch] = final_acc

    for arch in sorted(results, key=results.get, reverse=True):
        print(f"{arch:10s}: {results[arch]:.4f}")

if __name__ == "__main__":
    compare_architectures()
```
