[docs]defruletaker_pipeline(model:nn.Module,dataset_name:str,saved_model_path:str,saved_model_name:str,batch_size:int,epochs:int,accelerator:str="cpu",gpus:int=0,):""" Runs the RuleTaker pipeline for training a model. Args: model (nn.Module): The model to be trained. dataset_name (str): The name of the dataset. saved_model_path (str): The path to save the trained model. saved_model_name (str): The name of the saved model file. batch_size (int): The batch size for training. epochs (int): The number of training epochs. accelerator (str, optional): The accelerator to use for training. Defaults to "cpu". gpus (int, optional): The number of GPUs to use for training. Defaults to 0. Raises: ModelNotCompatibleError: If the model is not compatible with RuleTaker. """try:ifisinstance(model,RULETAKER_COMPATIBLE_MODELS):ifisinstance(model,PLRuleTaker):train_dataset=RuleTakerDataset(dataset_name,"train")val_dataset=RuleTakerDataset(dataset_name,"val")ruletaker_collate_fn=RuleTakerCollator()train_dataloader=DataLoader(train_dataset,batch_size=batch_size,collate_fn=ruletaker_collate_fn,)val_dataloader=DataLoader(val_dataset,batch_size=batch_size,collate_fn=ruletaker_collate_fn)checkpoint_callback=ModelCheckpoint(save_top_k=1,monitor="val_loss",mode="min",dirpath=saved_model_path,filename=saved_model_name,)trainer=pl.Trainer(callbacks=[checkpoint_callback],max_epochs=epochs,accelerator=accelerator,gpus=gpus,)trainer.fit(model,train_dataloader,val_dataloader)else:raiseModelNotCompatibleError(RULETAKER_COMPATIBLE_MODELS)exceptModelNotCompatibleErroraserr:print(err.message)