← all repositories
freud14/poutyne

PyTorch boilerplate that tastes like Keras, named like poutine

A Quebecois research group wrapped PyTorch's training loop in a familiar API so you can stop rewriting the same fit() function.

578 stars Python ML Frameworks
poutyne
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does Poutyne is a thin training framework around PyTorch. You build your nn.Module as usual, then hand it to Poutyne’s Model class, which handles the epoch loop, metrics, callbacks, and device placement. There’s also a ModelBundle for automatic checkpointing and logging if you want even less ceremony.

The interesting bit The project leans heavily into Keras ergonomics — model.fit(), model.evaluate(), model.predict() — but keeps PyTorch’s flexibility for the model definition itself. The name is a Quebecois pun: “poutine” means both the famous fries-and-gravy dish and, colloquially, “something ordinary.” The joke is that training loops are ordinary, so Poutyne does the ordinary part for you.

Key highlights

  • Drop-in fit/evaluate/predict API for any PyTorch module
  • Callback system for checkpoints, early stopping, and logging
  • ModelBundle class for opinionated experiment management (saves, logs, metrics automatically)
  • Supports torchmetrics and custom metrics out of the box
  • Python ≥3.8, tracks latest PyTorch; LGPLv3 licensed

Caveats

  • The README doesn’t mention distributed training or mixed precision — scope appears to be single-GPU/single-node workflows
  • 578 stars suggests a modest community; long-term maintenance trajectory is unclear from the sources

Verdict Worth a look if you like PyTorch’s model-building but miss Keras’s training ergonomics. Skip it if you’re already invested in Lightning, Hugging Face’s Trainer, or need multi-node scaling.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.