Esempio n. 1
0
class TestReCoSa(unittest.TestCase):
    def setUp(self):
        self.config = Config()
        self.config.add_model("./conf/model/ReCoSa_test.yml")
        self.config.add_trainer("./conf/trainer/ReCoSa_test.yml")
        self.data = UbuntuDataSet(
            "./" + "tests/resources/Ubuntu/",
            "sample.csv",
            self.config.model.max_seq,
            "Ubuntu",
            self.config.model.max_turns,
        )
        self.trainDataLoader = UbuntuDataLoader(
            self.data,
            **self.config.trainer.data,
            collate_fn=collate,
        )
        self.valDataLoader = UbuntuDataLoader(
            self.data,
            **self.config.trainer.data,
            collate_fn=collate,
        )
        self.model = RecoSAPL(self.config, len(self.data))
        self.trainer = pl.Trainer(**self.config.trainer.pl)

    def test_trainer(self):
        self.assertFalse(self.config.trainer.data.shuffle)
        _ = self.trainer.fit(self.model, self.trainDataLoader,
                             self.valDataLoader)
def main(
    config_data_file: str,
    config_model_file: str,
    config_trainer_file: str,
    config_api_file: str,
    version: str,
) -> None:

    # TODO: to be removed
    _ = build({"data_config": config_data_file, "version": version})

    cfg = Config()
    cfg.add_dataset(config_data_file)
    cfg.add_model(config_model_file)
    cfg.add_api(config_api_file)
    cfg.add_trainer(config_trainer_file)

    val_data = UbuntuDataSet(
        cfg.dataset.root + cfg.dataset.target,
        cfg.dataset.raw.val,
        cfg.model.max_seq,
        cfg.dataset.target,
        cfg.model.max_turns,
    )

    val_dataloader = UbuntuDataLoader(
        val_data,
        batch_size=cfg.model.batch_size,
        shuffle=False,
        num_workers=8,
        collate_fn=collate,
    )

    model = RecoSAPL.load_from_checkpoint(checkpoint_path=cfg.api.model_path,
                                          config=cfg)
    cfg.trainer.pl.max_epochs = 1

    trainer = pl.Trainer(**cfg.trainer.pl,
                         logger=False,
                         checkpoint_callback=False)
    test_result = trainer.test(model, test_dataloaders=val_dataloader)
    logger.info(test_result)
    bleu_score_4 = bleuS_4(model.pred, model.target)
    bleu_score_2 = bleuS_2(model.pred, model.target)
    logger.info(bleu_score_4)
    logger.info(bleu_score_2)