from pytorch_lightning import ( Trainer, ) from fengshen.models.model_utils import ( add_module_args, ) import argparse from fengshen.data.universal_datamodule import UniversalDataModule from fengshen.utils.universal_checkpoint import UniversalCheckpoint from fengshen.examples.pretrain_taiyi_clip.pretrain import ( TaiyiCLIP, Collator, ) from fengshen.data.fs_datasets import load_dataset from torch.utils.data import DataLoader if __name__ == '__main__': args_parser = argparse.ArgumentParser() args_parser = add_module_args(args_parser) args_parser = UniversalDataModule.add_data_specific_args(args_parser) args_parser = Trainer.add_argparse_args(args_parser) args_parser = TaiyiCLIP.add_module_specific_args(args_parser) args_parser = UniversalCheckpoint.add_argparse_args(args_parser) args = args_parser.parse_args() checkpoint_callback = UniversalCheckpoint(args) trainer = Trainer.from_argparse_args(args, callbacks=[ checkpoint_callback ]) model = TaiyiCLIP(args) processor = model.processor collate_fn = Collator(processor) datasets = load_dataset(args.datasets_name) dataloader = DataLoader(datasets[args.test_datasets_field], batch_size=args.test_batchsize, num_workers=2, collate_fn=collate_fn) trainer.validate(model, dataloaders=dataloader, ckpt_path=args.load_ckpt_path)