MACNNRegressorTorch
MACNNRegressorTorch
- class MACNNRegressorTorch(padding: str = 'same', pool_size: int = 3, strides: int = 2, repeats: int = 2, filter_sizes: tuple = (64, 128, 256), kernel_sizes: tuple = (3, 6, 12), reduction: int = 16, activation: str | Callable | None = None, activation_hidden: str | Callable | None = 'ReLU', num_epochs: int = 1500, batch_size: int = 4, optimizer: str | None | Callable = 'RMSprop', 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.001, verbose: bool = False, init_weights: str | None = None, random_state: int = 0)[source]
Multi-Scale Attention Convolutional Neural Network (MACNN) regressor in PyTorch.
This regressor implements a multi-scale attention mechanism that learns feature representations across different temporal scales.
- Parameters:
- paddingstr, default=”same”
The type of padding to be provided in MACNN Blocks. Used for pooling layers only. Convolution layers always use “same” padding, so that multi-scale outputs can be concatenated.
- pool_sizeint, default=3
A single value representing pooling windows which are applied between two MACNN Blocks.
- stridesint, default=2
A single value representing strides to be taken during the pooling operation.
- repeatsint, default=2
The number of MACNN Blocks to be stacked.
- filter_sizestuple of int, default=(64, 128, 256)
The filter sizes of Conv1D layers within each MACNN Block.
- kernel_sizestuple of int, default=(3, 6, 12)
The kernel sizes of Conv1D layers within each MACNN Block.
- reductionint, default=16
The factor by which the first dense layer of a MACNN Block will be divided by.
- 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 intorch.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 validtorch.nnactivation; see https://pytorch.org/docs/stable/nn.html#non-linear-activations-weighted-sum-nonlinearitytorch.nn.Module: an instance of atorch.nn.Modulesubclass, for exampletorch.nn.ReLU(). Arbitrary callables are not supported.
Recommended activations:
ReLU,Tanh,Sigmoid,LeakyReLU,ELU,SELU,GELU.- activation_hiddenstr, Callable, or None, default=”ReLU”
Activation applied to the hidden layers.
Permitted values:
None: no activation is applied to the hidden layers.str: name of a class intorch.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 validtorch.nnactivation; see https://pytorch.org/docs/stable/nn.html#non-linear-activations-weighted-sum-nonlinearitytorch.nn.Module: an instance of atorch.nn.Modulesubclass, for exampletorch.nn.ReLU(). Arbitrary callables are not supported.
Recommended activations:
ReLU,Tanh,Sigmoid,LeakyReLU,ELU,SELU,GELU.- num_epochsint, default=1500
The number of epochs to train the model.
- batch_sizeint, default=4
The size of each mini-batch during training.
- optimizercase insensitive str or None or an instance of optimizers
defined in torch.optim, default = “RMSprop” The optimizer to use for training the model.
- optimizer_kwargsdict or None, default = None
Additional keyword arguments to pass to the optimizer.
- criterioncase insensitive str or None or an instance of a loss function
defined in PyTorch, default = “MSELoss” The loss function to be used in training the neural network.
- criterion_kwargsdict or None, default = None
Additional keyword arguments to pass to the loss function.
- callbacksNone or str or a tuple of str, default = “ReduceLROnPlateau”
Currently only learning rate schedulers are supported as callbacks.
- callback_kwargsdict or None, default = None
The keyword arguments to be passed to the callbacks.
- lrfloat, default = 0.001
The learning rate to use for the optimizer.
- verbosebool, default = False
Whether to print progress information during training.
- init_weightsstr 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, default = 0
Seed to ensure reproducibility.
- Attributes:
is_fittedWhether
fithas been called.
References
[1]Wei Chen et. al, Multi-scale Attention Convolutional
Neural Network for time series classification, Neural Networks, Volume 136, 2021, Pages 126-140, ISSN 0893-6080, https://doi.org/10.1016/j.neunet.2021.01.001.
Examples
>>> from sktime.regression.deep_learning.macnn import MACNNRegressorTorch >>> 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") >>> reg = MACNNRegressorTorch(num_epochs=50, batch_size=2) >>> reg.fit(X_train, y_train) MACNNRegressorTorch(...)
Methods
check_is_fitted([method_name])Check if the estimator has been fitted.
clone()Obtain a clone of the object with same hyper-parameters and config.
clone_tags(estimator[, tag_names])Clone tags from another object as dynamic override.
create_test_instance([parameter_set])Construct an instance of the class, using first test parameter set.
create_test_instances_and_names([parameter_set])Create list of all test instances and a list of names for them.
fit(X, y)Fit time series regressor to training data.
get_class_tag(tag_name[, tag_value_default])Get class tag value from class, with tag level inheritance from parents.
get_class_tags()Get class tags from class, with tag level inheritance from parent classes.
get_config()Get config flags for self.
get_fitted_params([deep])Get fitted parameters.
get_param_defaults()Get object's parameter defaults.
get_param_names([sort])Get object's parameter names.
get_params([deep])Get a dict of parameters values for this object.
get_tag(tag_name[, tag_value_default, ...])Get tag value from instance, with tag level inheritance and overrides.
get_tags()Get tags from instance, with tag level inheritance and overrides.
get_test_params([parameter_set])Return testing parameter settings for the estimator.
is_composite()Check if the object is composed of other BaseObjects.
load_from_path(serial)Load object from file location.
load_from_serial(serial)Load object from serialized memory container.
predict(X)Predicts labels for sequences in X.
reset()Reset the object to a clean post-init state.
save([path, serialization_format])Save serialized self to bytes-like object or to (.zip) file.
score(X, y[, multioutput])Scores predicted labels against ground truth labels on X.
set_config(**config_dict)Set config flags to given values.
set_params(**params)Set the parameters of this object.
set_random_state([random_state, deep, ...])Set random_state pseudo-random seed parameters for self.
set_tags(**tag_dict)Set instance level tag overrides to given values.

