Trainer
Trainer is the training loop engine. It owns no model weights — it receives a Module*, an optimizer, a loss function, and a graph arena, then runs the forward → loss → backward → step cycle for as many epochs as you ask for.
TrainingStats
TrainingStats is a plain data struct returned by Trainer::fit_dataloader at the end of a training run. It gives you a record of how the loss evolved over every epoch, plus a few headline numbers.