From 8d87b2837145bdd124c5e585ac1d297e55702bf0 Mon Sep 17 00:00:00 2001
From: Ali El Hadi ISMAIL FAWAZ
<54309336+hadifawaz1999@users.noreply.github.com>
Date: Thu, 18 Jul 2024 22:20:51 +0200
Subject: [PATCH] remove base deep network old class (#1817)
---
aeon/networks/__init__.py | 2 +-
aeon/networks/base.py | 41 --------
aeon/networks/tests/test_all_networks.py | 5 +-
docs/api_reference/networks.rst | 2 +-
examples/base/base_classes.ipynb | 122 +++++++++++------------
5 files changed, 64 insertions(+), 108 deletions(-)
diff --git a/aeon/networks/__init__.py b/aeon/networks/__init__.py
index 4f56f2c434..b7ec3ca75a 100644
--- a/aeon/networks/__init__.py
+++ b/aeon/networks/__init__.py
@@ -26,4 +26,4 @@
from aeon.networks._mlp import MLPNetwork
from aeon.networks._resnet import ResNetNetwork
from aeon.networks._tapnet import TapNetNetwork
-from aeon.networks.base import BaseDeepLearningNetwork, BaseDeepNetwork
+from aeon.networks.base import BaseDeepLearningNetwork
diff --git a/aeon/networks/base.py b/aeon/networks/base.py
index aed3760b87..9f80fc54e3 100644
--- a/aeon/networks/base.py
+++ b/aeon/networks/base.py
@@ -4,53 +4,12 @@
from abc import ABC, abstractmethod
-from deprecated.sphinx import deprecated
-
-from aeon.base import BaseObject
from aeon.utils.validation._dependencies import (
- _check_estimator_deps,
_check_python_version,
_check_soft_dependencies,
)
-# TODO: remove v0.11.0
-@deprecated(
- version="0.10.0",
- reason="BaseDeepNetwork will be removed in 0.11.0, use BaseDeepLearningNetwork "
- "instead. The new class does not inherit from BaseObject.",
- category=FutureWarning,
-)
-class BaseDeepNetwork(BaseObject, ABC):
- """Abstract base class for deep learning networks."""
-
- def __init__(self):
- super().__init__()
- _check_estimator_deps(self)
-
- _config = {
- "python_dependencies": ["tensorflow"],
- "python_version": "<3.12",
- "structure": "encoder",
- }
-
- @abstractmethod
- def build_network(self, input_shape, **kwargs):
- """Construct a network and return its input and output layers.
-
- Parameters
- ----------
- input_shape : tuple
- The shape of the data fed into the input layer
-
- Returns
- -------
- input_layer : a keras layer
- output_layer : a keras layer
- """
- ...
-
-
class BaseDeepLearningNetwork(ABC):
"""Abstract base class for deep learning networks."""
diff --git a/aeon/networks/tests/test_all_networks.py b/aeon/networks/tests/test_all_networks.py
index 2100e488d4..37ce19bf07 100644
--- a/aeon/networks/tests/test_all_networks.py
+++ b/aeon/networks/tests/test_all_networks.py
@@ -35,10 +35,7 @@ def test_all_networks_functionality(network):
"""Test the functionality of all networks."""
input_shape = (100, 2)
- if not (
- network.__name__
- in ["BaseDeepNetwork", "BaseDeepLearningNetwork", "EncoderNetwork"]
- ):
+ if not (network.__name__ in ["BaseDeepLearningNetwork", "EncoderNetwork"]):
if _check_soft_dependencies(
network._config["python_dependencies"], severity="none"
) and _check_python_version(network._config["python_version"], severity="none"):
diff --git a/docs/api_reference/networks.rst b/docs/api_reference/networks.rst
index 4e4d15e25b..0a33613289 100644
--- a/docs/api_reference/networks.rst
+++ b/docs/api_reference/networks.rst
@@ -13,7 +13,7 @@ Deep learning networks
:toctree: auto_generated/
:template: class.rst
- BaseDeepNetwork
+ BaseDeepLearningNetwork
CNNNetwork
EncoderNetwork
FCNNetwork
diff --git a/examples/base/base_classes.ipynb b/examples/base/base_classes.ipynb
index 300aa53ec6..bce1f9a5bd 100644
--- a/examples/base/base_classes.ipynb
+++ b/examples/base/base_classes.ipynb
@@ -2,6 +2,9 @@
"cells": [
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"# Overview of the base class structure\n",
"\n",
@@ -10,13 +13,13 @@
"the following simplified UML\n",
"\n",
"
\n"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"## sklearn `BaseEstimator` and aeon `BaseObject`\n",
"\n",
@@ -29,54 +32,54 @@
"main functionality and may differ in details from the actual implementations.\n",
"\n",
"
\n"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"The aeon class `BaseObject` extends `BaseEstimator` and adds the tagging method and\n",
"some other functionality used in `aeon` estimators\n",
"\n",
"
\n"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
- "## aeons ``BaseEstimator``, `BaseDeepNetwork` and `BaseMetric`\n",
+ "## aeons ``BaseEstimator``, `BaseDeepLearningNetwork` and `BaseMetric`\n",
"\n",
- "Three classes extend `BaseObject`: ``BaseEstimator``, `BaseDeepNetwork` and\n",
+ "Three classes extend `BaseObject`: ``BaseEstimator``, `BaseDeepLearningNetwork` and\n",
"`BaseMetric`.\n",
"\n",
- "`BaseDeepNetwork` is the base class for all the deep learning networks defined in the\n",
+ "`BaseDeepLearningNetwork` is the base class for all the deep learning networks defined in the\n",
"`networks` module. It has a single abstract method `build_network`.\n",
"\n",
"
\n"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"The `BaseMetric` class is the base class for forecasting performance metrics. It has\n",
"a single abstract method `evaluate`.\n",
"\n",
"
\n"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"The ``BaseEstimator`` class is the base class for the majority of classes in aeon.\n",
"Anything that uses fit and predict in aeon. It contains a protected attribute\n",
@@ -84,37 +87,37 @@
"get fitted parameters.\n",
"\n",
"
"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"`BaseEstimator` has four direct base classes: `BaseForecaster`, `BaseTransformer` and `BaseCollectionEstimator`.\n",
"\n",
"\n",
"
"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"## `BaseForecaster` (aeon.forecasting.base)\n",
"contains the forecasting specific methods. More details are available in the [API](https://www.aeon-toolkit.org/en/latest/api_reference/forecasting.html). `BaseForecaster` has the following concrete methods:\n",
"\n",
"
"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"## `BaseTransformer` (aeon.transformations.base)\n",
"\n",
@@ -122,13 +125,13 @@
"collections transformers.\n",
"\n",
"
\n"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"## `BaseCollectionEstimator` (aeon.base)\n",
"\n",
@@ -139,13 +142,13 @@
"\n",
"
"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"The subclasses of `BaseCollectionEstimator` are as follows\n",
"\n",
@@ -163,13 +166,13 @@
" `BaseCollectionEstimator`.\n",
"\n",
"
"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"## `BaseRegressor` (aeon.regression)\n",
"\n",
@@ -178,13 +181,13 @@
"\n",
"\n",
"
"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"## `BaseClusterer` (aeon.clustering)\n",
"\n",
@@ -194,13 +197,13 @@
"\n",
"
"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
+ "metadata": {
+ "collapsed": false
+ },
"source": [
"## `BaseCollectionTransformer` (aeon.transformations.collection)\n",
"\n",
@@ -213,17 +216,14 @@
"\n",
"
\n"
- ],
- "metadata": {
- "collapsed": false
- }
+ ]
},
{
"cell_type": "markdown",
- "source": [],
"metadata": {
"collapsed": false
- }
+ },
+ "source": []
}
],
"metadata": {