130 auto& dataset = conf.dataset;
131 assert(dataset !=
nullptr);
132 auto dataloader = dataset->trainingData();
133 assert(dataloader !=
nullptr);
134 notify(&TrainerObserver::onTrainingBegun, model);
136 for (
size_t epoch = 0; isRunning(); ++epoch) {
138 for (
auto&& [out, in] : *dataloader) {
141 auto loss = adapter(model, in, out);
142 conf.optimizer->step(loss);
144 notify(&TrainerObserver::progressChanged, epoch, trainsetSize, progress);
148 auto tmp = &TrainerObserver::onTrainingEnded;
149 notify(&TrainerObserver::onTrainingEnded, model);