# Simple Training Loop

A basic training loop with logging, parameters, and metrics tracking.

```python
"""Simple training loop example."""
import random
from ml_dash import Experiment

def train_simple_model():
    with Experiment(
        prefix="alice/tutorials/simple-training",
        readme="Simple training example",
        tags=["tutorial", "simple"]
    ).run as experiment:
        experiment.params.set(
            learning_rate=0.001,
            batch_size=32,
            epochs=10,
            model="simple_nn"
        )

        experiment.log("Starting training", level="info")

        for epoch in range(10):
            train_loss = 1.0 / (epoch + 1) + random.uniform(-0.05, 0.05)
            val_loss = 1.2 / (epoch + 1) + random.uniform(-0.05, 0.05)
            accuracy = min(0.95, 0.5 + epoch * 0.05)

            experiment.metrics.log(
                epoch=epoch,
                train=dict(loss=train_loss, accuracy=accuracy),
                eval=dict(loss=val_loss, accuracy=accuracy)
            )

            experiment.log(
                f"Epoch {epoch + 1}/10 complete",
                level="info",
                metadata={"train_loss": train_loss, "val_loss": val_loss, "accuracy": accuracy}
            )

        experiment.log("Training complete!", level="info")

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