Ejemplo n.º 1
0
    def from_cwd(cls) -> Content:
        """ Generate Content object from git or from current path.

        Notes:
            1. First try to get it from git -> If not succeed use current path.
            2. No validation to path validity.

        TODO:
            1. Add attribute which init only changed objects by git.
        """
        repo = cls.git()
        if repo:
            content = Content(repo.working_tree_dir)
        else:
            content = Content(Path.cwd())

        return content
Ejemplo n.º 2
0
def cli_main():
    pl.seed_everything(1234)

    # ------------
    # args
    # ------------
    parser = ArgumentParser()
    parser.add_argument('--batch_size', default=32, type=int)
    parser.add_argument('--hidden_dim', type=int, default=128)
    parser = pl.Trainer.add_argparse_args(parser)
    parser = LitClassifier.add_model_specific_args(parser)
    args = parser.parse_args()

    # ------------
    # data
    # ------------
    dataset = MNIST(_DATASETS_PATH, train=True, download=True, transform=transforms.ToTensor())
    mnist_test = MNIST(_DATASETS_PATH, train=False, download=True, transform=transforms.ToTensor())
    mnist_train, mnist_val = random_split(dataset, [55000, 5000])

    train_loader = DataLoader(mnist_train, batch_size=args.batch_size)
    val_loader = DataLoader(mnist_val, batch_size=args.batch_size)
    test_loader = DataLoader(mnist_test, batch_size=args.batch_size)

    # ------------
    # model
    # ------------
    model = LitClassifier(Backbone(hidden_dim=args.hidden_dim), args.learning_rate)

    # ------------
    # training
    # ------------
    experiment_dir = Path.cwd()
    checkpoint_callback = ModelCheckpoint(dirpath=experiment_dir)
    trainer = pl.Trainer.from_argparse_args(args)
    trainer.fit(model, train_loader, val_loader,gradient_clip_val=0.5,
                         benchmark=True,
                         callbacks=[GPUStatsMonitor(),checkpoint_callback],)

    # ------------
    # testing
    # ------------
    result = trainer.test(test_dataloaders=test_loader, gradient_clip_val=0.5,
                         benchmark=True,
                         callbacks=[GPUStatsMonitor(),checkpoint_callback],)
    print(result)
Ejemplo n.º 3
0
    def git() -> Optional[Repo]:
        """ Git repository object.

        Returns:
            Repo: Repo object of content repo if exists else retun None.

        References:
            1. GitPython - https://github.com/gitpython-developers/GitPython

        Notes:
            1. Should be called when cwd inside content repository.
        """
        try:
            repo = Repo(Path.cwd(), search_parent_directories=True)
        except InvalidGitRepositoryError:
            repo = None

        return repo