Zurück zu den Modellen
Regressor

CNNRegressorTorch

Time Convolutional Neural Network (CNN) in PyTorch, as described in [1].

Zhao et al. 2017 uses sigmoid activation in the hidden layers.

Adapted from the implementation from Fawaz et. al https://github.com/hfawaz/dl-4-tsc/blob/master/classifiers/cnn.py

Schnellstart

python
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)

Parameter(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_sizes must be equal to the length of filter_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_sizes must be equal to the length of kernel_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 the Conv1D layer. - “auto”: as per original implementation, "same" is passed if

input_shape[0] < 60 in the input layer, and "valid" otherwise.

  • “valid”, “same”, and other values are passed directly to Conv1D

activationstr, Callable, or None, default=None

Activation applied to the output layer.

Permitted values:

  • None: no activation is applied to the output layer and the network returns raw outputs.

  • str: name of a class in torch.nn. Case-sensitive names are recommended and must match PyTorch (e.g., "ReLU", "LeakyReLU"). Lowercase aliases for common activations are also accepted (e.g., "relu" is resolved to "ReLU"). The class is instantiated with default constructor arguments. Must be a valid torch.nn activation; see https://pytorch.org/docs/stable/nn.html#non-linear-activations-weighted-sum-nonlinearity

  • torch.nn.Module: an instance of a torch.nn.Module subclass, for example torch.nn.ReLU(). Arbitrary callables are not supported.

activation_hiddenstr, Callable, or None, default=”Sigmoid”

Activation applied to the hidden layers.

Permitted values:

  • None: no activation is applied to the hidden layers.

  • str: name of a class in torch.nn. Case-sensitive names are recommended and must match PyTorch (e.g., "ReLU", "LeakyReLU"). Lowercase aliases for common activations are also accepted (e.g., "relu" is resolved to "ReLU"). The class is instantiated with default constructor arguments. Must be a valid torch.nn activation; see https://pytorch.org/docs/stable/nn.html#non-linear-activations-weighted-sum-nonlinearity

  • torch.nn.Module: an instance of a torch.nn.Module subclass, for example torch.nn.ReLU(). Arbitrary callables are not supported.

Recommended activations: Sigmoid, ReLU, 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.

Beispiele

>>> 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(
... )

Referenzen

[1]

Zhao et al. Convolutional neural networks for time series classification, Journal of Systems Engineering and Electronics, 28(1):2017.