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.

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/predictAPI for any PyTorch module - Callback system for checkpoints, early stopping, and logging
ModelBundleclass for opinionated experiment management (saves, logs, metrics automatically)- Supports
torchmetricsand 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.