Пример #1
0
            mt.Callbacks.SavePyvistaPoints(
                on_step=1000,
                properties=['curvature'],
                filename=f'./fold_{fold_number}/train/data'),
            mt.Callbacks.LRFind(),
            mt.Callbacks.ReduceLROnValidPlateau()
        ]

        test_callbacks = [
            mt.Callbacks.SavePyvistaPoints(
                on_batch=1,
                properties=['curvature'],
                filename=f'./fold_{fold_number}/test/data')
        ]

        trainer = mt.Trainer(model, optimizer, criterion, **config.trainer)

        start_time = time()
        trainer.fit_on_loader(train_loader,
                              valid_dataloader=valid_loader,
                              cycles=[
                                  100,
                              ],
                              callbacks=fit_callbacks,
                              std_to_file=f'./fold_{fold_number}/train/log')
        end_time = time()

        train_time = end_time - start_time

        trainer.load_best_model(f'./fold_{fold_number}/Checkpoints')
            time_log.append(
                dict(train_steps_per_epoch=len(train_loader),
                     test_steps_per_epoch=len(test_loader)))

        fold_number += 1

        if fold_number in [1]:

            print(f'runing fold {fold_number}/{5}')

            model = config.ml_model(*config.model.args, **config.model.kwargs)
            criterion = torch.nn.L1Loss(**config.criterion)

            test_callbacks = []

            trainer = mt.Trainer(model, None, criterion, **config.trainer)

            trainer.load_best_model(f'./fold_{fold_number}/Checkpoints')

            start_time = time()
            trainer.test_on_loader(
                test_loader,
                std_to_file=f'./fold_{fold_number}/test/log',
                callbacks=test_callbacks)
            end_time = time()

            test_time = end_time - start_time

            del fold_number
            del model
            del criterion