Registry / ai-ml / trainer

trainer

JSON →
library0.0.36pypypiunverified

Trainer by Coqui-AI is a general-purpose model trainer for PyTorch, designed to be flexible for various deep learning tasks. It wraps common training patterns, including distributed training via Hugging Face Accelerate, making it suitable for quick experimentation and larger-scale projects. The library is in active development (v0.0.36) with frequent micro-releases addressing bugs and adding features.

pip install trainer
INSTALL
IMPORT
SIG · TRAINER
T
trainer
ai-mlpythonv0.0.36
Install
72.6s avg
Import
Disk
4915MB
Pass rate
2/ 10
Env Coverage2 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.0.36 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
glibc
py 3.10
✕ build_error
✓ 79.95s
py 3.11
✕ build_error
✓ 65.3s
py 3.12
✕ build_error
✕ build_error
py 3.13
✕ build_error
✕ build_error
py 3.9
✕ build_error
✕ timeout
4915MB installed
● package 4915MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Trainer
from trainer import Trainer
from trainer import Trainer

This quickstart demonstrates how to set up a minimal PyTorch model, optimizer, criterion, and data loaders, then initialize and run the `Trainer` class for a basic training loop. It uses dummy data and a simple linear model to illustrate the core workflow. The `config` dictionary is essential for guiding the trainer's behavior, including output paths and training epochs.

import torch from torch import nn, optim from torch.utils.data import DataLoader, Dataset from trainer import Trainer import os # 1. Dummy Dataset class DummyDataset(Dataset): def __init__(self, num_samples=100, input_dim=10, output_dim=1): self.X = torch.randn(num_samples, input_dim) self.y = torch.randn(num_samples, output_dim) def __len__(self): return len(self.X) def __getitem__(self, idx): return self.X[idx], self.y[idx] # 2. Dummy Model class DummyModel(nn.Module): def __init__(self, input_dim=10, output_dim=1): super().__init__() self.linear = nn.Linear(input_dim, output_dim) def forward(self, x): return self.linear(x) # 3. Setup components input_dim = 10 output_dim = 1 model = DummyModel(input_dim, output_dim) optimizer = optim.Adam(model.parameters(), lr=0.001) criterion = nn.MSELoss() train_dataset = DummyDataset(num_samples=100, input_dim=input_dim, output_dim=output_dim) eval_dataset = DummyDataset(num_samples=20, input_dim=input_dim, output_dim=output_dim) dataloader_train = DataLoader(train_dataset, batch_size=4, shuffle=True) dataloader_eval = DataLoader(eval_dataset, batch_size=4, shuffle=False) # 4. Minimal Config (usually from argparse) config = { "output_path": "./trainer_quickstart_output", "epochs": 2, "start_by_epochs": True, "print_step": 1, "save_step": 1, "eval_step": 1 } # Ensure output path exists for trainer to save checkpoints/logs os.makedirs(config["output_path"], exist_ok=True) # 5. Initialize and run Trainer trainer_instance = Trainer( config=config, model=model, optimizer=optimizer, criterion=criterion, dataloader_train=dataloader_train, dataloader_eval=dataloader_eval, ) print(f"Starting training for {config['epochs']} epochs...") trainer_instance.train_loop() print("Training finished.") # Output files will be created in ./trainer_quickstart_output # In a real application, you might add cleanup or more complex logging.
trainer --version
Debug
Known issues
breakingThe `continue_path` (for resuming training from checkpoints) and `save_best_model` functionalities have undergone several reverts and fixes across versions v0.0.33, v0.0.34, and v0.0.35. This indicates potential instability and breaking changes in how checkpoints are handled or resumed.
fix
Always test checkpointing and resumption thoroughly after updating the library. Refer to the specific release notes for bug fixes related to `continue_path` and `save_best_model` in your target version.
affects: >=0.0.33, <0.0.36
gotchaAs a pre-1.0 library (currently v0.0.36), the API may evolve rapidly. Methods, arguments, or configurations might change without extensive deprecation warnings, leading to unexpected errors with minor version updates.
fix
Pin your `trainer` dependency to an exact version (`trainer==0.0.36`) in production environments and review GitHub releases/changelogs carefully before upgrading. Maintain robust integration tests for your training pipelines.
affects: <1.0.0
gotchaDistributed training setups, which leverage `accelerate`, can be complex. Issues like 'distribute rank initialization' have been fixed (v0.0.32), suggesting that multi-GPU or distributed configurations might require careful setup and debugging.
fix
Consult the `accelerate` documentation and `trainer`'s examples for distributed training. Ensure your environment is correctly configured for distributed processes, and verify that all ranks initialize correctly, especially when setting up for the first time.
affects: <0.0.33
Upgrade
Version history
0.0.36latest on PyPI · released Dec 13, 2023
Audit
Dependencies
torchrequiredCore deep learning framework.
acceleraterequiredEnables distributed training and mixed precision.
scipyrequiredScientific computing utilities, often used in data processing or metrics.
Agent activity
33 hits · last 30 days
node
30
OpenAI (training)
1
Resources
trainer — pip install trainer · libregistry