def test_mlflow_logger(tmpdir): """Verify that basic functionality of mlflow logger works.""" tutils.reset_seed() try: from pytorch_lightning.logging import MLFlowLogger except ModuleNotFoundError: return hparams = tutils.get_hparams() model = LightningTestModel(hparams) mlflow_dir = os.path.join(tmpdir, "mlruns") logger = MLFlowLogger("test", tracking_uri=f"file:{os.sep * 2}{mlflow_dir}") trainer_options = dict(default_save_path=tmpdir, max_epochs=1, train_percent_check=0.01, logger=logger) trainer = Trainer(**trainer_options) result = trainer.fit(model) print('result finished') assert result == 1, "Training failed"
def test_mlflow_logger(): """ verify that basic functionality of mlflow logger works """ reset_seed() try: from pytorch_lightning.logging import MLFlowLogger except ModuleNotFoundError: return hparams = testing_utils.get_hparams() model = LightningTestModel(hparams) root_dir = os.path.dirname(os.path.realpath(__file__)) mlflow_dir = os.path.join(root_dir, "mlruns") logger = MLFlowLogger("test", f"file://{mlflow_dir}") trainer_options = dict( max_nb_epochs=1, train_percent_check=0.01, logger=logger ) trainer = Trainer(**trainer_options) result = trainer.fit(model) print('result finished') assert result == 1, "Training failed" testing_utils.clear_save_dir()
def test_mlflow_pickle(): """ verify that pickling trainer with mlflow logger works """ reset_seed() try: from pytorch_lightning.logging import MLFlowLogger except ModuleNotFoundError: return hparams = testing_utils.get_hparams() model = LightningTestModel(hparams) root_dir = os.path.dirname(os.path.realpath(__file__)) mlflow_dir = os.path.join(root_dir, "mlruns") logger = MLFlowLogger("test", f"file://{mlflow_dir}") trainer_options = dict( max_nb_epochs=1, logger=logger ) trainer = Trainer(**trainer_options) pkl_bytes = pickle.dumps(trainer) trainer2 = pickle.loads(pkl_bytes) trainer2.logger.log_metrics({"acc": 1.0}) testing_utils.clear_save_dir()
def test_mlflow_logger(): """ verify that basic functionality of mlflow logger works """ reset_seed() try: from pytorch_lightning.logging import MLFlowLogger except ModuleNotFoundError: return hparams = get_hparams() model = LightningTestModel(hparams) root_dir = os.path.dirname(os.path.realpath(__file__)) mlflow_dir = os.path.join(root_dir, "mlruns") logger = MLFlowLogger("test", f"file://{mlflow_dir}") logger.log_hyperparams(hparams) logger.save() trainer_options = dict(max_nb_epochs=1, train_percent_check=0.01, logger=logger) trainer = Trainer(**trainer_options) result = trainer.fit(model) assert result == 1, "Training failed" n = RANDOM_FILE_PATHS.pop() shutil.move(mlflow_dir, mlflow_dir + f'_{n}')
def command_execute(hparams, experiment_name): # Check if the task if already finished flag = check_finish(hparams, experiment_name) if flag and not hparams.F: logging.info("The task has been already finished or running") logging.info("Skip this run") logging.info(hparams) else: logging.info("Execute this run") logging.info(hparams) random.seed(hparams.seed) torch.manual_seed(hparams.seed) torch.cuda.manual_seed(hparams.seed) torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False # Parameters print("Build model...") model = DomainGeneralization(hparams) mlf_logger = MLFlowLogger(experiment_name=EXPERIMENT_NAME) # mlf_logger = MLFlowLogger(experiment_name=EXPERIMENT_NAME, tracking_uri="s3://log") logging.info("MLF Run ID: {}".format(mlf_logger.run_id)) if hparams.S is True: checkpoint = ModelCheckpoint( filepath=os.path.join(os.getcwd(), EXPERIMENT_NAME, str(mlf_logger.run_id)), save_top_k=-1, ) trainer = pl.Trainer(mlf_logger, gpus=1, max_epochs=hparams.epoch, early_stop_callback=False, checkpoint_callback=checkpoint) else: trainer = pl.Trainer(mlf_logger, gpus=1, max_epochs=hparams.epoch, early_stop_callback=False) trainer.fit(model) trainer.test() print(model.test_result)
def test_mlflow_pickle(tmpdir): """Verify that pickling trainer with mlflow logger works.""" tutils.reset_seed() try: from pytorch_lightning.logging import MLFlowLogger except ModuleNotFoundError: return hparams = tutils.get_hparams() model = LightningTestModel(hparams) mlflow_dir = os.path.join(tmpdir, "mlruns") logger = MLFlowLogger("test", f"file://{mlflow_dir}") trainer_options = dict(max_num_epochs=1, logger=logger) trainer = Trainer(**trainer_options) pkl_bytes = pickle.dumps(trainer) trainer2 = pickle.loads(pkl_bytes) trainer2.logger.log_metrics({"acc": 1.0})