class_docstr: LTSF-NLinear Forecaster.
  
  Implementation of the Long-Term Short-Term Feature (LTSF) normalization linear
  forecaster, aka LTSF-NLinear, by Zeng et al [1]_.
  
  Core logic is directly copied from the cure-lab LTSF-Linear implementation [2]_,
  which is unfortunately not available as a package.
  
  Parameters
  ----------
  seq_len : int
      length of input sequence
  pred_len : int
      length of prediction (forecast horizon)
  num_epochs : int, default=16
      number of epochs to train
  batch_size : int, default=8
      number of training examples per batch
  in_channels : int, default=1
      number of input channels passed to network
  individual : bool, default=False
      boolean flag that controls whether the network treats each channel individually"
      "or applies a single linear layer across all channels. If individual=True, the"
      "a separate linear layer is created for each input channel. If"
      "individual=False, a single shared linear layer is used for all channels."
  criterion : torch.nn Loss Function, default=torch.nn.MSELoss
      loss function to be used for training
  criterion_kwargs : dict, default=None
      keyword arguments to pass to criterion
  optimizer : torch.optim.Optimizer, default=torch.optim.Adam
      optimizer to be used for training
  optimizer_kwargs : dict, default=None
      keyword arguments to pass to optimizer
  lr : float, default=0.003
      learning rate to train model with
  
  References
  ----------
  .. [1] Zeng A, Chen M, Zhang L, Xu Q. 2023.
  Are transformers effective for time series forecasting?
  Proceedings of the AAAI conference on artificial intelligence 2023
  (Vol. 37, No. 9, pp. 11121-11128).
  .. [2] https://github.com/cure-lab/LTSF-Linear
  
  Examples
  --------
  >>> from sktime.forecasting.ltsf import LTSFNLinearForecaster # doctest: +SKIP
  >>> from sktime.datasets import load_airline
  >>> model = LTSFNLinearForecaster(10, 3) # doctest: +SKIP
  >>> y = load_airline()
  >>> model.fit(y, fh=[1,2,3]) # doctest: +SKIP
  LTSFNLinearForecaster(pred_len=3, seq_len=10)
  >>> y_pred = model.predict() # doctest: +SKIP
  >>> y_pred # doctest: +SKIP
  1961-01    455.628082
  1961-02    433.349640
  1961-03    437.045502
  Freq: M, Name: Number of airline passengers, dtype: float32
code: def _build_network(self, fh):
      from sktime.networks.ltsf._ltsf import LTSFNLinearNetwork
  
      return LTSFNLinearNetwork(
          self.seq_len,
          fh,
          self.in_channels,
          self.individual,
      )._build()
  
file_path: sktime/sktime/forecasting/ltsf.py
imports: from sktime.forecasting.base.adapters._pytorch import BaseDeepNetworkPyTorch
label_desc: Use image node_id 2 for calling the LTSFNLinearForecaster obj's underlying member method code with example usage: obj._build_network(fh) and returns: LTSFNLinearNetwork