from pytorch_lightning import LightningModule import torch.optim as optim # Ensure the TemporalFusionTransformer is wrapped as a LightningModule class TFTLightningModule(LightningModule): def __init__(self, model): super().__init__() self.model = model self.save_hyperparameters() def forward(self, batch): # If batch is a tuple (inputs, targets), use only inputs if isinstance(batch, tuple): batch = batch[0] return self.model(batch) def training_step(self, batch, batch_idx): x, y = batch # unpack if needed y_hat = self(x) loss = self.model.loss(y_hat, x["decoder_target"]) self.log("train_loss", loss) return loss def validation_step(self, batch, batch_idx): x, y = batch y_hat = self(x) loss = self.model.loss(y_hat, x["decoder_target"]) self.log("val_loss", loss) return loss def configure_optimizers(self): optimizer = optim.Adam(self.parameters(), lr=self.model.hparams.learning_rate) return optimizer # Wrap the TemporalFusionTransformer tft_module = TFTLightningModule(tft) trainer = Trainer( max_epochs=30, accelerator="auto", enable_model_summary=True, gradient_clip_val=0.1, ) # Train the model trainer.fit(tft_module, train_dataloaders=train_dataloader, val_dataloaders=val_dataloader) i got below error for above code when using tft INFOytorch_lightning.callbacks.model_summary: | Name | Type | Params | Mode 0 | model | TemporalFusionTransformer | 1.4 M | train 1.4 M Trainable params 0 Non-trainable params 1.4 M Total params 5.613 Total estimated model params size (MB) 470 Modules in train mode 0 Modules in eval mode /usr/local/lib/python3.11/dist-packages/pytorch_lightning/core/saving.py:363: Skipping 'model' parameter because it is not possible to safely dump to YAML. Sanity Checking DataLoader 0: 0% 0/1 [00:00<?, ?it/s] TypeError Traceback (most recent call last) in <cell line: 0>() 1 # Train the model ----> 2 trainer.fit(tft_module, train_dataloaders=train_dataloader, val_dataloaders=val_dataloader) 19 frames /usr/local/lib/python3.11/dist-packages/pytorch_forecasting/utils/_utils.py in getitem(self, k) 390 return getattr(self, k) 391 else: --> 392 return super().getitem(k) 393 394 def get(self, k, default=None): TypeError: tuple indices must be integers or slices, not tuple I tried many different methods and read many articles and chatgpt's responds. but i was unable to solve that. if you know the reasons let me know Thanks Continue reading...