class_docstr: LightningModule class for the model MQF2 proposed in the paper
  ``Multivariate Quantile Function Forecaster``
  by Kan, Aubet, Januschowski, Park, Benidis, Ruthotto, Gasthaus
  
  This is the multi-horizon (multivariate in time step) variant of MQF2
  
  This class is based on
  gluonts.torch.model.deepar.lightning_module.DeepARLightningModule
  
  Parameters
  ----------
  model_kwargs
      Keyword arguments to construct the ``MQF2MultiHorizonModel`` to be trained.
  loss
      Distribution loss.
  lr
      Learning rate.
  weight_decay
      Weight decay during training.
  patience
      Patience parameter for learning rate scheduler, default: ``10``.
docstr: Execute training step.
docstr_tok: ["Execute","training","step","."]
code: def training_step(self, batch, batch_idx: int):  # type: ignore
      """
      Execute training step.
      """
      train_loss = self.model.loss(
          **select(self.inputs, batch),
          future_observed_values=batch["future_observed_values"],
          future_target=batch["future_target"],
      ).mean()
  
      self.log(
          "train_loss",
          train_loss,
          on_epoch=True,
          on_step=False,
          prog_bar=True,
      )
      return train_loss
  
file_path: gluonts/src/gluonts/torch/model/mqf2/lightning_module.py
imports: from typing import Dict
  import lightning.pytorch
  import torch
  from torch.optim.lr_scheduler import ReduceLROnPlateau
  from gluonts.core.component import validated
  from gluonts.itertools import select
  from .module import MQF2MultiHorizonModel
label_desc: Use image node_id 4 for calling the MQF2MultiHorizonLightningModule obj's underlying member method code with example usage: obj.training_step(batch, batch_idx) and returns: train_loss