Skip to content

Quick Start

Get started with FRAMEWORM in 5 minutes.


Installation

pip install frameworm

Virtual Environment

It's recommended to use a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install frameworm

Your First Model

1. Initialize Project

frameworm init my-first-model --template vae
cd my-first-model

This creates: my-first-model/ ├── configs/ │ └── config.yaml # Configuration ├── data/ # Dataset directory ├── experiments/ # Experiment tracking ├── checkpoints/ # Model checkpoints └── README.md

2. Prepare Data

Download MNIST dataset:

from torchvision import datasets, transforms
from torch.utils.data import DataLoader

transform = transforms.Compose([
    transforms.Resize(64),
    transforms.ToTensor(),
    transforms.Normalize((0.5,), (0.5,))
])

train_dataset = datasets.MNIST('data', train=True, download=True, transform=transform)
train_loader = DataLoader(train_dataset, batch_size=128, shuffle=True)

3. Train Model

    frameworm train --config configs/config.yaml --gpus 0
    from frameworm import Trainer, Config, get_model
    import torch.optim as optim

    # Load config
    config = Config('configs/config.yaml')

    # Create model
    model = get_model('vae')(config)
    optimizer = optim.Adam(model.parameters(), lr=0.001)

    # Train
    trainer = Trainer(model, optimizer)
    trainer.train(train_loader, val_loader, epochs=100)

4. Monitor Training

Launch the dashboard:

frameworm dashboard --port 8080

Open http://localhost:8080 to see real-time training progress.

5. Export & Deploy

# Export to ONNX
frameworm export checkpoints/best.pt --format onnx

# Serve model
frameworm serve exported/model.pt --port 8000

Test the API:

curl -X POST http://localhost:8000/predict \
  -H "Content-Type: application/json" \
  -d '{"data": [[...]]}'


Next Steps


Common Issues

CUDA out of memory

Reduce batch size in config.yaml:

    training:
      batch_size: 64  # Try smaller values
Model not converging

Try adjusting learning rate:

    training:
      lr: 0.0001  # Lower learning rate
Slow training

Enable multi-GPU:

    frameworm train --config config.yaml --gpus 0,1,2,3