CNNRegressorTorch
Time Convolutional Neural Network (CNN) in PyTorch, as described in [1].
Quickstart
from sktime.regression.deep_learning.cnn import CNNRegressorTorch
estimator = CNNRegressorTorch(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), use_bias: bool=True, padding: str='auto', activation: str | Callable | None=None, activation_hidden: str | Callable='Sigmoid', optimizer: str | None | Callable='Adam', optimizer_kwargs: dict | None=None, criterion: str | None | Callable='MSELoss', 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.- use_biasbool, default = True
- Whether to use bias in output layer.
- paddingstring, default = “auto”
Controls padding logic for the convolutional layers, i.e. whether
'valid'and'same'are passed to theConv1Dlayer. - “auto”: as per original implementation,"same"is passed ifinput_shape[0] < 60in the input layer, and"valid"otherwise.“valid”, “same”, and other values are passed directly to
Conv1D
- activationstr or Callable or None, default = None
- Activation for the output layer.
- activation_hiddenstr or Callable, default = “Sigmoid”
- Activation for hidden conv layers: “Sigmoid”, “ReLU” or “Tanh”.
- 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 = “MSELoss”
- Loss function (TF uses mean_squared_error).
- 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.regression.deep_learning.cnn import CNNRegressorTorch
>>> from sktime.datasets import load_unit_test
>>> X_train, y_train = load_unit_test (return_X_y = True, split = "train")
>>> X_test, y_test = load_unit_test (return_X_y = True, split = "test")
>>> reg = CNNRegressorTorch (num_epochs = 20, batch_size = 4)
>>> reg. fit (X_train, y_train) CNNRegressorTorch(
... )References
- [1 ] Zhao et al. Convolutional neural networks for time series classification, Journal of Systems Engineering and Electronics, 28(1):2017.