| import omegaconf
|
| import hydra
|
|
|
| from comet_ml import Experiment
|
| from pytorch_lightning.loggers import CometLogger
|
|
|
| import pytorch_lightning as pl
|
|
|
| from src.pl_data_modules import ConsecDataModule
|
| from src.pl_modules import ConsecPLModule
|
| from src.utils.hydra import fix
|
|
|
|
|
| def train(conf: omegaconf.DictConfig) -> None:
|
|
|
| pl.seed_everything(conf.train.seed)
|
|
|
|
|
| pl_data_module = ConsecDataModule(conf)
|
|
|
|
|
| pl_module = ConsecPLModule(conf)
|
|
|
|
|
| callbacks_store = []
|
|
|
| if conf.train.early_stopping_callback is not None:
|
| early_stopping = hydra.utils.instantiate(conf.train.early_stopping_callback)
|
| callbacks_store.append(early_stopping)
|
|
|
| if conf.train.model_checkpoint_callback is not None:
|
| model_checkpoint = hydra.utils.instantiate(
|
| conf.train.model_checkpoint_callback,
|
| filename="{epoch:02d}-{" + conf.train.callbacks_monitor + ":.2f}",
|
| )
|
| callbacks_store.append(model_checkpoint)
|
|
|
| for callback in conf.callbacks.callbacks:
|
| callbacks_store.append(hydra.utils.instantiate(callback, _recursive_=False))
|
|
|
|
|
| trainer = hydra.utils.instantiate(
|
| conf.train.pl_trainer,
|
| callbacks=callbacks_store,
|
| logger=False,
|
| )
|
|
|
|
|
| trainer.fit(pl_module, datamodule=pl_data_module)
|
|
|
|
|
| @hydra.main(config_path="../../../conf", config_name="root")
|
| def main(conf: omegaconf.DictConfig):
|
| fix(conf)
|
| train(conf)
|
|
|
|
|
| if __name__ == "__main__":
|
| main()
|
|
|