class_docstr: Implementation of LSTMFCNClassifier from Karim et al (2019) [1].
  
  Overview
  --------
   Combines an LSTM arm with a CNN arm. Optionally uses an attention mechanism in the
   LSTM which the author indicates provides improved performance.
  
  
  Parameters
  ----------
  n_epochs: int, default=2000
   the number of epochs to train the model
  batch_size: int, default=128
      the number of samples per gradient update.
  dropout: float, default=0.8
      controls dropout rate of LSTM layer
  kernel_sizes: list of ints, default=[8, 5, 3]
      specifying the length of the 1D convolution windows
  filter_sizes: int, list of ints, default=[128, 256, 128]
      size of filter for each conv layer
  lstm_size: int, default=8
      output dimension for LSTM layer
  attention: boolean, default=False
      If True, uses custom attention LSTM layer
  callbacks: keras callbacks, default=ReduceLRonPlateau
      Keras callbacks to use such as learning rate reduction or saving best model
      based on validation error
  verbose: 'auto', 0, 1, or 2. Verbosity mode.
      0 = silent, 1 = progress bar, 2 = one line per epoch.
      'auto' defaults to 1 for most cases, but 2 when used with
      `ParameterServerStrategy`. Note that the progress bar is not
      particularly useful when logged to a file, so verbose=2 is
      recommended when not running interactively (eg, in a production
      environment).
  random_state : int or None, default=None
      Seed for random, integer.
  
  
  Notes
  -----
  Ported from sktime-dl source code
  https://github.com/sktime/sktime-dl/blob/master/sktime_dl/classification/_lstmfcn.py
  
  References
  ----------
  .. [1] Karim et al. Multivariate LSTM-FCNs for Time Series Classification, 2019
  https://arxiv.org/pdf/1801.04503.pdf
docstr: Return testing parameter settings for the estimator.
  
  Parameters
  ----------
  parameter_set : str, default="default"
      Name of the set of test parameters to return, for use in tests. If no
      special parameters are defined for a value, will return `"default"` set.
      For classifiers, a "default" set of parameters should be provided for
      general testing, and a "results_comparison" set for comparing against
      previously recorded results if the general set does not produce suitable
      probabilities to compare against.
  
  Returns
  -------
  params : dict or list of dict, default={}
      Parameters to create testing instances of the class.
      Each dict are parameters to construct an "interesting" test instance, i.e.,
      `MyClass(**params)` or `MyClass(**params[i])` creates a valid test instance.
      `create_test_instance` uses the first (or only) dictionary in `params`.
code: def get_test_params(cls, parameter_set="default"):
      """Return testing parameter settings for the estimator.
  
      Parameters
      ----------
      parameter_set : str, default="default"
          Name of the set of test parameters to return, for use in tests. If no
          special parameters are defined for a value, will return `"default"` set.
          For classifiers, a "default" set of parameters should be provided for
          general testing, and a "results_comparison" set for comparing against
          previously recorded results if the general set does not produce suitable
          probabilities to compare against.
  
      Returns
      -------
      params : dict or list of dict, default={}
          Parameters to create testing instances of the class.
          Each dict are parameters to construct an "interesting" test instance, i.e.,
          `MyClass(**params)` or `MyClass(**params[i])` creates a valid test instance.
          `create_test_instance` uses the first (or only) dictionary in `params`.
      """
      from sktime.utils.validation._dependencies import (
          _check_soft_dependencies,
      )
  
      param1 = {
          "n_epochs": 25,
          "batch_size": 4,
          "kernel_sizes": (3, 2, 1),
          "filter_sizes": (2, 4, 2),
      }
  
      param2 = {
          "n_epochs": 5,
          "batch_size": 2,
          "kernel_sizes": (3, 2, 1),
          "filter_sizes": (2, 4, 2),
          "lstm_size": 2,
          "attention": True,
      }
      test_params = [param1, param2]
  
      if _check_soft_dependencies("keras", severity="none"):
          from keras.callbacks import LambdaCallback
  
          test_params.append(
              {
                  "n_epochs": 2,
                  "callbacks": [LambdaCallback()],
              }
          )
  
      return test_params
  
file_path: sktime/sktime/classification/deep_learning/lstmfcn.py
imports: from copy import deepcopy
  from sklearn.utils import check_random_state
  from sktime.classification.deep_learning.base import BaseDeepClassifier
  from sktime.networks.lstmfcn import LSTMFCNNetwork
label_desc: Use image node_id 4 for calling the LSTMFCNClassifier obj's underlying member method code with example usage: obj.get_test_params(cls, parameter_set) and returns: test_params