Classifier
CNNClassifierTorch
Time Convolutional Neural Network (CNN) in PyTorch, as described in [1].
Quickstart
python
from sktime.classification.deep_learning.cnn import CNNClassifierTorch
estimator = CNNClassifierTorch(num_epochs: int=2000, batch_size: int=16, kernel_sizes: tuple [int, ... ]=(7, 7), avg_pool_size: int=3, filter_sizes: tuple [int, ... ]=(6, 12), padding: str='auto', use_bias: bool=True, activation: str | Callable | None=None, activation_hidden: str | Callable='Sigmoid', optimizer: str | None | Callable='Adam', optimizer_kwargs: dict | None=None, criterion: str | None | Callable='CrossEntropyLoss', criterion_kwargs: dict | None=None, callbacks: None | str | tuple [str, ... ]='ReduceLROnPlateau', callback_kwargs: dict | None=None, lr: float=0.01, verbose: bool=False, init_weights: str | None=None, random_state: int | None=None)Parameters(19)
- num_epochsint, default = 2000
- Number of epochs to train the model.
- batch_sizeint, default = 16
- Size of each mini-batch.
- kernel_sizestuple of int, default = (7, 7)
A tuple of length equal to the number of conv layers with each entry in the tuple specifies the kernel size for the corresponding convolutional layer. The length of
kernel_sizesmust be equal to the length offilter_sizes.- avg_pool_sizeint, default = 3
- Size of the average pooling window.
- filter_sizestuple of int, default = (6, 12)
A tuple of length equal to the number of conv layers with each entry in the tuple specifies the filter size for the corresponding convolutional layer. The length of
filter_sizesmust be equal to the length ofkernel_sizes.- paddingstr, default = “auto”
- Padding for conv layers. “auto”: “same” if series_length < 60 else “valid”; “valid” or “same” otherwise.
- use_biasbool, default = True
- Whether to use bias in output layer.
- activationstr or callable or None, default = None
- Activation on output layer. None when using CrossEntropyLoss.
- activation_hiddenstr or callable, default = “Sigmoid”
- Activation for hidden conv layers. Recommended activations include ‘Sigmoid’, ‘ReLU’, ‘Tanh’, ‘Softmax’ or ‘LogSoftmax’.
- optimizerstr or callable, default = “Adam”
- Optimizer to use. Same as TF default (Adam).
- optimizer_kwargsdict or None, default = None
- Additional keyword arguments for the optimizer.
- criterionstr or callable, default = “CrossEntropyLoss”
- Loss function for training.
- criterion_kwargsdict or None, default = None
- Additional keyword arguments for the criterion.
- callbacksNone or str or tuple of str, default = “ReduceLROnPlateau”
- Learning rate schedulers as callbacks.
- callback_kwargsdict or None, default = None
- Keyword arguments for callbacks.
- lrfloat, default = 0.01
- Learning rate (TF CNN uses Adam(lr=0.01)).
- verbosebool, default = False
- Whether to print progress during training.
- init_weights: str or None, default = None
- The method to initialize the weights of the conv layers. Supported values are ‘kaiming_uniform’, ‘kaiming_normal’, ‘xavier_uniform’, ‘xavier_normal’, or None for default PyTorch initialization.
- random_stateint or None, default = None
- Seed for reproducibility.
Examples
>>> from sktime.classification.deep_learning.cnn import CNNClassifierTorch
>>> from sktime.datasets import load_unit_test
>>> X_train, y_train = load_unit_test (split = "train")
>>> X_test, y_test = load_unit_test (split = "test")
>>> clf = CNNClassifierTorch (num_epochs = 20, batch_size = 4)
>>> clf. fit (X_train, y_train) CNNClassifierTorch(
... )References
- [1 ] Zhao et al. Convolutional neural networks for time series classification, Journal of Systems Engineering and Electronics, 28(1):2017.