Back to models
Classifier

LSTMFCNClassifier

Implementation of LSTMFCNClassifier from Karim et al (2019) [1].

Quickstart

python
from sktime.classification.deep_learning.lstmfcn import LSTMFCNClassifier

estimator = LSTMFCNClassifier(n_epochs=2000, batch_size=128, dropout=0.8, kernel_sizes=(8, 5, 3), filter_sizes=(128, 256, 128), lstm_size=8, attention=False, callbacks=None, random_state=None, verbose=0, activation='softmax', activation_hidden='relu')

Parameters(12)

activationstring or a tf callable, default=”softmax”

Activation function used in the output layer. List of available activation functions: https://keras.io/api/layers/activations/

activation_hiddenstring or a tf callable, default=”relu”

Activation function used in the hidden layers. List of available activation functions: https://keras.io/api/layers/activations/

n_epochsint, default=2000
the number of epochs to train the model
batch_sizeint, default=128
the number of samples per gradient update.
dropoutfloat, default=0.8
controls dropout rate of LSTM layer
kernel_sizeslist of ints, default=[8, 5, 3]
specifying the length of the 1D convolution windows
filter_sizesint, list of ints, default=[128, 256, 128]
size of filter for each conv layer
lstm_sizeint, default=8
output dimension for LSTM layer
attentionboolean, default=False
If True, uses custom attention LSTM layer
callbackskeras 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_stateint or None, default=None
Seed for random, integer.

Examples

>>> import sktime.classification.deep_learning as dl_clf
>>> from dl_clf.lstmfcn import LSTMFCNClassifier
>>> from sktime.datasets import load_unit_test
>>> X_train, y_train = load_unit_test (split = "train", return_X_y = True)
>>> X_test, y_test = load_unit_test (split = "test", return_X_y = True)
>>> lstmfcn = FCNClassifier (n_epochs = 20, batch_size = 4)
>>> lstmfcn. fit (X_train, y_train) FCNClassifier(
... )

References

  1. [1 ] Karim et al. Multivariate LSTM-FCNs for Time Series Classification, 2019 https://arxiv.org/pdf/1801.04503.pdf