InceptionNetwork

class InceptionNetwork(n_filters=32, n_conv_per_layer=3, kernel_size=40, use_max_pooling=True, max_pool_size=3, strides=1, dilation_rate=1, padding='same', activation='relu', use_bias=False, use_residual=True, use_bottleneck=True, bottleneck_size=32, depth=6, use_custom_filters=False)[source]

Inception Network.

Parameters:
depthint, default = 6,

The number of inception modules used

n_filtersint or list of int32, default = 32

The number of filters used in one inception module, if not a list, the same number of filters is used in all inception modules.

n_conv_per_layerint or list of int, default = 3

The number of convolution layers in each inception module, if not a list, the same number of convolution layers is used in all inception modules.

kernel_sizeint or list of int, default = 40

The head kernel size used for each inception module, if not a list, the same is used in all inception modules.

use_max_poolingbool or list of bool, default = True

Conditioning whether or not to use max pooling layer in inception modules, if not a list,the same is used in all inception modules.

max_pool_sizeint or list of int, default = 3

The size of the max pooling layer, if not a list, the same is used in all inception modules.

stridesint or list of int, default = 1

The strides of kernels in convolution layers for each inception module, if not a list, the same is used in all inception modules.

dilation_rateint or list of int, default = 1

The dilation rate of convolutions in each inception module, if not a list, the same is used in all inception modules.

paddingstr or list of str, default = ‘same’

The type of padding used for convoltuon for each inception module, if not a list, the same is used in all inception modules.

activationstr or list of str, default = ‘relu’

The activation function used in each inception module, if not a list, the same is used in all inception modules.

use_biasbool or list of bool, default = False

Conditioning whether or not convolutions should use bias values in each inception module, if not a list, the same is used in all inception modules.

use_residualbool, default = True

Condition whether or not to use residual connections all over Inception.

use_bottleneckbool, default = True

Condition whether or not to use bottlenecks all over Inception.

bottleneck_sizeint, default = 32

The bottleneck size in case use_bottleneck = True.

use_custom_filtersbool, default = False

Condition on whether or not to use custom filters in the first inception module.

Adapted from the implementation from Fawaz et. al
https://github.com/hfawaz/InceptionTime/blob/master/classifiers/
inception.py
and
https://github.com/MSD-IRIMAS/CF-4-TSC/blob/main/classifiers/H_Inception.py
for the custom filters
Network originally defined in:
@article{IsmailFawaz2019inceptionTime, Title = {
InceptionTime: Finding AlexNet for Time Series Classification}, Author

= {Ismail Fawaz, Hassan and Lucas, Benjamin and Forestier, Germain and Pelletier, Charlotte and Schmidt, Daniel F. and Weber, Jonathan and Webb, Geoffrey I. and Idoumghar, Lhassane and Muller, Pierre-Alain and Petitjean, François}, journal = { ArXiv}, Year = {2019} }

Custom filters defined in:
@inproceedings{ismail-fawaz2022hccf,
author = {Ismail-Fawaz, Ali and Devanne, Maxime and Weber,
Jonathan and Forestier, Germain},
title = {Deep Learning For Time Series Classification
Using New Hand-Crafted Convolution Filters},
booktitle = {2022 IEEE International Conference on
Big Data (IEEE BigData 2022)},
city = {Osaka},
country = {Japan},
pages = {972-981},
url = {doi.org/10.1109/BigData55660.2022.10020496},
year = {2022},
organization = {IEEE}
}

Methods

build_network(input_shape, **kwargs)

Construct a network and return its input and output layers.

clone()

Obtain a clone of the object with same hyper-parameters.

clone_tags(estimator[, tag_names])

Clone/mirror tags from another estimator as dynamic override.

create_test_instance([parameter_set])

Construct Estimator instance if possible.

create_test_instances_and_names([parameter_set])

Create list of all test instances and a list of names for them.

get_class_tag(tag_name[, tag_value_default])

Get tag value from estimator class (only class tags).

get_class_tags()

Get class tags from estimator class and all its parent classes.

get_metadata_routing()

Get metadata routing of this object.

get_param_defaults()

Get parameter defaults for the object.

get_param_names()

Get parameter names for the object.

get_params([deep])

Get parameters for this estimator.

get_tag(tag_name[, tag_value_default, ...])

Get tag value from estimator class.

get_tags()

Get tags from estimator class.

get_test_params([parameter_set])

Return testing parameter settings for the estimator.

hybrid_layer(input_tensor, input_channels[, ...])

Construct the hybrid layer to compute features of cutom filters.

is_composite()

Check if the object is composite.

load_from_path(serial)

Load object from file location.

load_from_serial(serial)

Load object from serialized memory container.

reset()

Reset the object to a clean post-init state.

save([path])

Save serialized self to bytes-like object or to (.zip) file.

set_params(**params)

Set the parameters of this object.

set_tags(**tag_dict)

Set dynamic tags to given values.

hybrid_layer(input_tensor, input_channels, kernel_sizes=None)[source]

Construct the hybrid layer to compute features of cutom filters.

Parameters:
input_tensortensorflow tensor, usually the input layer of the model.
input_channelsint, the number of input channels in case of multivariate.
kernel_sizeslist of int, default = [2,4,8,16,32,64],
the size of the hand-crafted filters.
Returns:
hybrid_layertensorflow tensor containing the concatenation
of the output features extracted form hand-crafted convolution filters.
build_network(input_shape, **kwargs)[source]

Construct a network and return its input and output layers.

input_shapetuple

The shape of the data fed into the input layer

Returns:
input_layera keras layer
output_layera keras layer
clone()[source]

Obtain a clone of the object with same hyper-parameters.

A clone is a different object without shared references, in post-init state. This function is equivalent to returning sklearn.clone of self. Equal in value to type(self)(**self.get_params(deep=False)).

Returns:
instance of type(self), clone of self (see above)
clone_tags(estimator, tag_names=None)[source]

Clone/mirror tags from another estimator as dynamic override.

Parameters:
estimatorobject

Estimator inheriting from :class:BaseEstimator.

tag_namesstr or list of str, default = None

Names of tags to clone. If None then all tags in estimator are used as tag_names.

Returns:
Self

Reference to self.

Notes

Changes object state by setting tag values in tag_set from estimator as dynamic tags in self.

classmethod create_test_instance(parameter_set='default')[source]

Construct Estimator instance if possible.

Parameters:
parameter_setstr, default=”default”

Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.

Returns:
instanceinstance of the class with default parameters.

Notes

get_test_params can return dict or list of dict. This function takes first or single dict that get_test_params returns, and constructs the object with that.

classmethod create_test_instances_and_names(parameter_set='default')[source]

Create list of all test instances and a list of names for them.

Parameters:
parameter_setstr, default=”default”

Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.

Returns:
objslist of instances of cls

i-th instance is cls(**cls.get_test_params()[i]).

nameslist of str, same length as objs

i-th element is name of i-th instance of obj in tests convention is {cls.__name__}-{i} if more than one instance otherwise {cls.__name__}.

parameter_setstr, default=”default”

Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.

classmethod get_class_tag(tag_name, tag_value_default=None)[source]

Get tag value from estimator class (only class tags).

Parameters:
tag_namestr

Name of tag value.

tag_value_defaultany type

Default/fallback value if tag is not found.

Returns:
tag_value

Value of the tag_name tag in self. If not found, returns tag_value_default.

See also

get_tag

Get a single tag from an object.

get_tags

Get all tags from an object.

get_class_tag

Get a single tag from a class.

Examples

>>> from aeon.classification import DummyClassifier
>>> DummyClassifier.get_class_tag("capability:multivariate")
True
classmethod get_class_tags()[source]

Get class tags from estimator class and all its parent classes.

Returns:
collected_tagsdict

Dictionary of tag name : tag value pairs. Collected from _tags class attribute via nested inheritance. NOT overridden by dynamic tags set by set_tags or mirror_tags.

get_metadata_routing()[source]

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:
routingMetadataRequest

A MetadataRequest encapsulating routing information.

classmethod get_param_defaults()[source]

Get parameter defaults for the object.

Returns:
default_dict: dict with str keys

keys are all parameters of cls that have a default defined in __init__ values are the defaults, as defined in __init__.

classmethod get_param_names()[source]

Get parameter names for the object.

Returns:
param_names: list of str, alphabetically sorted list of parameter names of cls
get_params(deep=True)[source]

Get parameters for this estimator.

Parameters:
deepbool, default=True

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:
paramsdict

Parameter names mapped to their values.

get_tag(tag_name, tag_value_default=None, raise_error=True)[source]

Get tag value from estimator class.

Uses dynamic tag overrides.

Parameters:
tag_namestr

Name of tag to be retrieved.

tag_value_defaultany type, default=None

Default/fallback value if tag is not found.

raise_errorbool

Whether a ValueError is raised when the tag is not found.

Returns:
tag_value

Value of the tag_name tag in self. If not found, returns an error if raise_error is True, otherwise it returns tag_value_default.

Raises:
ValueError if raise_error is True i.e. if tag_name is not in self.get_tags(
).keys()

See also

get_tags

Get all tags from an object.

get_clas_tags

Get all tags from a class.

get_class_tag

Get a single tag from a class.

Examples

>>> from aeon.classification import DummyClassifier
>>> d = DummyClassifier()
>>> d.get_tag("capability:multivariate")
True
get_tags()[source]

Get tags from estimator class.

Includes the dynamic tag overrides.

Returns:
dict

Dictionary of tag name : tag value pairs. Collected from _tags class attribute via nested inheritance and then any overrides and new tags from _tags_dynamic object attribute.

See also

get_tag

Get a single tag from an object.

get_clas_tags

Get all tags from a class.

get_class_tag

Get a single tag from a class.

Examples

>>> from aeon.classification import DummyClassifier
>>> d = DummyClassifier()
>>> tags = d.get_tags()
classmethod get_test_params(parameter_set='default')[source]

Return testing parameter settings for the estimator.

Parameters:
parameter_setstr, default=”default”

Name of the set of test parameters to return, for use in tests. If no special parameters are defined for a value, will return “default” set.

Returns:
paramsdict or list of dict, default = {}

Parameters to create testing instances of the class. Each dict are parameters to construct an “interesting” test instance, i.e., MyClass(**params) or MyClass(**params[i]) creates a valid test instance. create_test_instance uses the first (or only) dictionary in params.

is_composite()[source]

Check if the object is composite.

A composite object is an object which contains objects, as parameters. Called on an instance, since this may differ by instance.

Returns:
composite: bool

Whether self contains a parameter which is BaseObject.

classmethod load_from_path(serial)[source]

Load object from file location.

Parameters:
serialobject

Result of ZipFile(path).open(“object).

Returns:
deserialized self resulting in output at path, of cls.save(path)
classmethod load_from_serial(serial)[source]

Load object from serialized memory container.

Parameters:
serialobject

First element of output of cls.save(None).

Returns:
deserialized self resulting in output serial, of cls.save(None).
reset()[source]

Reset the object to a clean post-init state.

Equivalent to sklearn.clone but overwrites self. After self.reset() call, self is equal in value to type(self)(**self.get_params(deep=False))

Detail behaviour: removes any object attributes, except:

hyper-parameters = arguments of __init__ object attributes containing double-underscores, i.e., the string “__”

runs __init__ with current values of hyper-parameters (result of get_params)

Not affected by the reset are: object attributes containing double-underscores class and object methods, class attributes

save(path=None)[source]

Save serialized self to bytes-like object or to (.zip) file.

Behaviour: if path is None, returns an in-memory serialized self if path is a file location, stores self at that location as a zip file

saved files are zip files with following contents: _metadata - contains class of self, i.e., type(self) _obj - serialized self. This class uses the default serialization (pickle).

Parameters:
pathNone or file location (str or Path).

if None, self is saved to an in-memory object if file location, self is saved to that file location. If:

path=”estimator” then a zip file estimator.zip will be made at cwd. path=”/home/stored/estimator” then a zip file estimator.zip will be stored in /home/stored/.

Returns:
if path is None - in-memory serialized self
if path is file location - ZipFile with reference to the file.
set_params(**params)[source]

Set the parameters of this object.

The method works on simple estimators as well as on nested objects. The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters:
**paramsdict

BaseObject parameters

Returns:
selfreference to self (after parameters have been set)
set_tags(**tag_dict)[source]

Set dynamic tags to given values.

Parameters:
**tag_dictdict

Dictionary of tag name : tag value pairs.

Returns:
Self

Reference to self.

Notes

Changes object state by setting tag values in tag_dict as dynamic tags in self.