Skip to main content

Waffle is a framework that lets you use lots of different deep learning tools through just one interface. When it comes to MLOps (machine learning operations), you need to be able to keep up with all the new ideas in deep learning as quickly as possible. But it's hard to do that if you have to write all the code yourself. That's why we started a project to bring together different tools into one framework.

Experience the power of multiple deep learning frameworks at your fingertips with Waffle's seamless integration, unlocking limitless possibilities for your machine learning projects.

Prerequisites

We've tested Waffle on the following environments:

OS Python PyTorch Device Backend Pass
Ubuntu 20.04 3.9, 3.10 1.13.1 CPU, GPU All Waffle Hub cpu test
Windows 3.9, 3.10 1.13.1 CPU, GPU All Waffle Hub cpu test
Ubuntu 20.04 3.9 1.13.1 Multi GPU Ultralytics Waffle Hub multi-gpu(ddp) test on self-hosted runner

We recommend using above environments for the best experience.

Installation

  1. Install pytorch and torchvision
  2. Install Waffle Hub
    • pip install -U waffle-hub

Example Usage

We provide both python module and CLI for Waffle Hub.

Following examples do the exact same thing.

Python Module

from waffle_hub.dataset import Dataset
dataset = Dataset.sample(
  name = "mnist_classification",
  task = "classification",
)
dataset.split(
  train_ratio = 0.8,
  val_ratio = 0.1,
  test_ratio = 0.1
)
export_dir = dataset.export("YOLO")

from waffle_hub.hub import Hub
hub = Hub.new(
  name = "my_classifier",
  task = "classification",
  model_type = "yolov8",
  model_size = "n",
  categories = dataset.get_category_names(),
)
hub.train(
  dataset = dataset,
  epochs = 30,
  batch_size = 64,
  image_size=64,
  device="cpu"
)
hub.inference(
  source=export_dir,
  draw=True,
  device="cpu"
)

CLI

wd sample --name mnist_classification --task classification
wd split --name mnist_classification --train-ratio 0.8 --val-ratio 0.1 --test-ratio 0.1
wd export --name mnist_classification --data-type YOLO

wh new --name my_classifier --task classification --model-type yolov8 --model-size n --categories [1,2]
wh train --name my_classifier --dataset mnist_classification --epochs 30 --batch-size 64 --image-size 64 --device cpu
wh inference --name my_classifier --source datasets/mnist_classification/exports/YOLO --draw --device cpu

See our documentation for more information!

Metadata

Release files for waffle-hub 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for waffle-hub 0.3.1
File Size Uploaded
waffle_hub-0.3.1.tar.gz 97.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for waffle-hub 0.3.1
File Interpreter ABI Platform
waffle_hub-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 206.0 kB

Release files / waffle_hub-0.3.1.tar.gz

Download URL waffle_hub-0.3.1.tar.gz
Size 97.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ae837f987b83abd912a2b9a8b680bc3cab24088f03bdc9d665e8d57d3404dee7
BLAKE2b-256 checksum
How to use checksums
0cf9276a5f342ffdb636ca9a831ad0d7fe0c6c40059b3fc41efb5846bad27f0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / waffle_hub-0.3.1-py3-none-any.whl

Download URL waffle_hub-0.3.1-py3-none-any.whl
Size 109.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ec8b312c6d1df389409faf11d474d4d65aa597c5516110f174625fa63ff8af8
BLAKE2b-256 checksum
How to use checksums
185a1299b89952a8397e20c4d777829e85c34ce06139078065e2fd38d2d81b30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page