docstr: Feeds PastCovariatesTorchModel with input and output chunks of a PastCovariatesSequentialDataset for
  training.
  
  Parameters:
  ----------
  input_batch
      ``(past_target, past_covariates, static_covariates)``
docstr_tok: ["Feeds","PastCovariatesTorchModel","with","input","and","output","chunks","of","a","PastCovariatesSequentialDataset","for","training",".","Parameters",":","--","--","--","--","--","input_batch","``","(","past_target",",","past_covariates",",","static_covariates",")","``"]
code: def _produce_train_output(self, input_batch: Tuple):
      """
      Feeds PastCovariatesTorchModel with input and output chunks of a PastCovariatesSequentialDataset for
      training.
  
      Parameters:
      ----------
      input_batch
          ``(past_target, past_covariates, static_covariates)``
      """
      past_target, past_covariates, static_covariates = input_batch
      # Currently all our PastCovariates models require past target and covariates concatenated
      inpt = (
          torch.cat([past_target, past_covariates], dim=2)
          if past_covariates is not None
          else past_target,
          static_covariates,
      )
      return self(inpt)
  
imports: from abc import ABC, abstractmethod
  from functools import wraps
  from typing import Any, Dict, Optional, Sequence, Tuple, Union
  import pytorch_lightning
  import torch
  import torch.nn
  import torchmetrics
  from joblib import Parallel, delayed
  from darts.logging import get_logger, raise_if, raise_log
  from darts.models.components.layer_norm_variants import RINorm
  from darts.timeseries import TimeSeries
  from darts.utils.likelihood_models import Likelihood
  from darts.utils.timeseries_generation import _build_forecast_series
  from darts.utils.torch import MonteCarloDropout
label_desc: Use image node_id 1 for calling the PLPastCovariatesModule obj's underlying member method code with example usage: obj._produce_train_output(input_batch) and returns: self