KDD2024 Tutorial / A Hands-On Introduction to Time Series Classification and Regression
aeon
¶Deep learning is proven to be very effective for Time Series Classification (TSC) tasks after the extensive experiments done in [1], especially convolution based architectures (i.e. FCN and ResNet [2]). A while later, InceptionTime (Convolution based) was proposed to become the new state-of-the-art deep learning model for TSC [3]. In [4], new hand-crafted convolution filters were proposed to boost InceptionTime. The model proposed in [4], Hybrid InceptionTime (H-InceptionTime) is currently, at the time of writing, the state-of-the-art deep learning model for TSC following [5]. More recently, in the latest Time Series Regression (TSER) review [6], the deep learning model InceptionTime is seen to be the state-of-the-art deep learning model.
In this notebook, we cover the usage of the deep learning models for both TSC and TSER on EEG applications.
For all figures used in this demo, we use the one provided by the Deep Learning for Time Series Classification webpage with this reference figure for all legends needed:
Note: All deep learners in aeon
currently are based on tensorflow
. You will need to pip install tensorflow
to run this code.
!pip install aeon==0.11.0 tensorflow
!mkdir -p data
!wget -nc https://raw.githubusercontent.com/aeon-tutorials/KDD-2024/main/Notebooks/data/KDD_MTSC_TRAIN.ts -P data/
!wget -nc https://raw.githubusercontent.com/aeon-tutorials/KDD-2024/main/Notebooks/data/KDD_MTSC_TEST.ts -P data/
!wget -nc https://raw.githubusercontent.com/aeon-tutorials/KDD-2024/main/Notebooks/data/KDD_UTSC_TRAIN.ts -P data/
!wget -nc https://raw.githubusercontent.com/aeon-tutorials/KDD-2024/main/Notebooks/data/KDD_UTSC_TEST.ts -P data/
!wget -nc https://raw.githubusercontent.com/aeon-tutorials/KDD-2024/main/Notebooks/data/KDD_MTSER_TRAIN.ts -P data/
!wget -nc https://raw.githubusercontent.com/aeon-tutorials/KDD-2024/main/Notebooks/data/KDD_MTSER_TEST.ts -P data/
!wget -nc https://raw.githubusercontent.com/aeon-tutorials/KDD-2024/main/Notebooks/data/KDD_UTSER_TRAIN.ts -P data/
!wget -nc https://raw.githubusercontent.com/aeon-tutorials/KDD-2024/main/Notebooks/data/KDD_UTSER_TEST.ts -P data/
# There are some deprecation warnings present in the notebook, we will ignore them.
# Remove this cell if you are interested in finding out what is changing soon, for
# aeon there will be big changes in out v1.0.0 release!
import warnings
warnings.filterwarnings("ignore", category=FutureWarning)
from aeon.registry import all_estimators
all_estimators(
"classifier", filter_tags={"algorithm_type": "deeplearning"}, as_dataframe=True
)
name | estimator | |
---|---|---|
0 | CNNClassifier | <class 'aeon.classification.deep_learning._cnn... |
1 | EncoderClassifier | <class 'aeon.classification.deep_learning._enc... |
2 | FCNClassifier | <class 'aeon.classification.deep_learning._fcn... |
3 | InceptionTimeClassifier | <class 'aeon.classification.deep_learning._inc... |
4 | IndividualInceptionClassifier | <class 'aeon.classification.deep_learning._inc... |
5 | IndividualLITEClassifier | <class 'aeon.classification.deep_learning._lit... |
6 | LITETimeClassifier | <class 'aeon.classification.deep_learning._lit... |
7 | MLPClassifier | <class 'aeon.classification.deep_learning._mlp... |
8 | ResNetClassifier | <class 'aeon.classification.deep_learning._res... |
9 | TapNetClassifier | <class 'aeon.classification.deep_learning._tap... |
10 | TimeCNNClassifier | <class 'aeon.classification.deep_learning._cnn... |
all_estimators(
"regressor", filter_tags={"algorithm_type": "deeplearning"}, as_dataframe=True
)
name | estimator | |
---|---|---|
0 | CNNRegressor | <class 'aeon.regression.deep_learning._cnn.CNN... |
1 | EncoderRegressor | <class 'aeon.regression.deep_learning._encoder... |
2 | FCNRegressor | <class 'aeon.regression.deep_learning._fcn.FCN... |
3 | InceptionTimeRegressor | <class 'aeon.regression.deep_learning._incepti... |
4 | IndividualInceptionRegressor | <class 'aeon.regression.deep_learning._incepti... |
5 | IndividualLITERegressor | <class 'aeon.regression.deep_learning._lite_ti... |
6 | LITETimeRegressor | <class 'aeon.regression.deep_learning._lite_ti... |
7 | MLPRegressor | <class 'aeon.regression.deep_learning._mlp.MLP... |
8 | ResNetRegressor | <class 'aeon.regression.deep_learning._resnet.... |
9 | TapNetRegressor | <class 'aeon.regression.deep_learning._tapnet.... |
10 | TimeCNNRegressor | <class 'aeon.regression.deep_learning._cnn.Tim... |
from aeon.datasets import load_from_tsfile
X_train_c, y_train_c = load_from_tsfile("./data/KDD_UTSC_TRAIN.ts")
X_test_c, y_test_c = load_from_tsfile("./data/KDD_UTSC_TEST.ts")
# znormalize the series
X_train_c = (X_train_c - X_train_c.mean(axis=-1, keepdims=True)) / (X_train_c.std(axis=-1, keepdims=True))
X_test_c = (X_test_c - X_test_c.mean(axis=-1, keepdims=True)) / (X_test_c.std(axis=-1, keepdims=True))
print("Train shape:", X_train_c.shape)
print("Test shape:", X_test_c.shape)
Train shape: (40, 1, 100) Test shape: (40, 1, 100)
from aeon.visualisation import plot_collection_by_class
plot_collection_by_class(X_train_c[:,0,:], y_train_c)
(<Figure size 1200x600 with 2 Axes>, array([<Axes: >, <Axes: >], dtype=object))
X_train_r, y_train_r = load_from_tsfile("./data/KDD_UTSER_TRAIN.ts")
X_test_r, y_test_r = load_from_tsfile("./data/KDD_UTSER_TEST.ts")
# znormalize the series
X_train_r = (X_train_r - X_train_r.mean(axis=-1, keepdims=True)) / (X_train_r.std(axis=-1, keepdims=True))
X_test_r = (X_test_r - X_test_r.mean(axis=-1, keepdims=True)) / (X_test_r.std(axis=-1, keepdims=True))
print("Train shape:", X_train_r.shape)
print("Test shape:", X_test_r.shape)
Train shape: (72, 1, 100) Test shape: (72, 1, 100)
from matplotlib import pyplot as plt
plt.plot(X_train_r[:5,0,:].T)
plt.title("EEG Regression Samples")
plt.xlabel("Time")
plt.ylabel("Value")
plt.show()
The Multilayer Perceptron (MLP) [2], the simplest model in neural networks, is often used as a baseline for deep learning models. However, when applied to time series data, it fails to account for temporal dependencies. The MLP model tries to find the optimal non-linear combination of input features to achieve a good performance of a downstream task.
from aeon.classification.deep_learning import MLPClassifier
from sklearn.metrics import accuracy_score
mlp_cls = MLPClassifier(n_epochs=100)
mlp_cls.fit(X_train_c, y_train_c)
mlp_cls_preds = mlp_cls.predict(X_test_c)
print(accuracy_score(y_test_c, mlp_cls_preds))
3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step 0.525
from aeon.regression.deep_learning import MLPRegressor
from sklearn.metrics import mean_squared_error
mlp_rgs = MLPRegressor(n_epochs=500)
mlp_rgs.fit(X_train_r, y_train_r)
mlp_rgs_preds = mlp_rgs.predict(X_test_r)
print(mean_squared_error(y_test_r, mlp_rgs_preds))
5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 8ms/step 1.5122948837188972
from aeon.visualisation import plot_scatter_predictions
plot_scatter_predictions(y_test_r, mlp_rgs_preds, title="MLP Predictions")
(<Figure size 600x600 with 1 Axes>, <Axes: title={'center': 'MLP Predictions'}, xlabel='Actual values', ylabel='Predicted values'>)
The Time Convolutional Neural Network (TimeCNN) [7] is a convolutional neural network where the optimization process focuses on learning the most effective filters to achieve optimal results. Unlike MLP, TimeCNN leverages local convolutions, allowing them to capture and consider temporal dependencies in the data, making them more suitable for time series analysis.
from aeon.classification.deep_learning import CNNClassifier
from sklearn.metrics import accuracy_score
# n_epochs chooses the number of training iterations
# verbose show the network's detail and the logs of training
cnn_cls = CNNClassifier(n_epochs=500, verbose=True, save_best_model=True, best_file_name="best_cnn")
cnn_cls.fit(X_train_c, y_train_c)
cnn_cls_preds = cnn_cls.predict(X_test_c)
print(accuracy_score(y_test_c, cnn_cls_preds))
Model: "functional_2"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓ ┃ Layer (type) ┃ Output Shape ┃ Param # ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩ │ input_layer_2 (InputLayer) │ (None, 100, 1) │ 0 │ ├─────────────────────────────────┼────────────────────────┼───────────────┤ │ conv1d (Conv1D) │ (None, 94, 6) │ 48 │ ├─────────────────────────────────┼────────────────────────┼───────────────┤ │ average_pooling1d │ (None, 31, 6) │ 0 │ │ (AveragePooling1D) │ │ │ ├─────────────────────────────────┼────────────────────────┼───────────────┤ │ conv1d_1 (Conv1D) │ (None, 25, 12) │ 516 │ ├─────────────────────────────────┼────────────────────────┼───────────────┤ │ average_pooling1d_1 │ (None, 8, 12) │ 0 │ │ (AveragePooling1D) │ │ │ ├─────────────────────────────────┼────────────────────────┼───────────────┤ │ flatten_2 (Flatten) │ (None, 96) │ 0 │ ├─────────────────────────────────┼────────────────────────┼───────────────┤ │ dense_8 (Dense) │ (None, 2) │ 194 │ └─────────────────────────────────┴────────────────────────┴───────────────┘
Total params: 758 (2.96 KB)
Trainable params: 758 (2.96 KB)
Non-trainable params: 0 (0.00 B)
Epoch 1/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - accuracy: 0.5234 - loss: 0.2599 Epoch 2/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.5234 - loss: 0.2539 Epoch 3/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.5234 - loss: 0.2506 Epoch 4/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 26ms/step - accuracy: 0.5234 - loss: 0.2496 Epoch 5/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5484 - loss: 0.2501 Epoch 6/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 4ms/step - accuracy: 0.4766 - loss: 0.2514 Epoch 7/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - accuracy: 0.4766 - loss: 0.2526 Epoch 8/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.4766 - loss: 0.2534 Epoch 9/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.4766 - loss: 0.2535 Epoch 10/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.4766 - loss: 0.2530 Epoch 11/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 2ms/step - accuracy: 0.4766 - loss: 0.2523 Epoch 12/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 3ms/step - accuracy: 0.4766 - loss: 0.2514 Epoch 13/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.4766 - loss: 0.2505 Epoch 14/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.4766 - loss: 0.2498 Epoch 15/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.4766 - loss: 0.2492 Epoch 16/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.4891 - loss: 0.2488 Epoch 17/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.5250 - loss: 0.2484 Epoch 18/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5375 - loss: 0.2482 Epoch 19/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5375 - loss: 0.2479 Epoch 20/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5375 - loss: 0.2478 Epoch 21/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5375 - loss: 0.2476 Epoch 22/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5375 - loss: 0.2474 Epoch 23/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5734 - loss: 0.2472 Epoch 24/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5734 - loss: 0.2470 Epoch 25/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5734 - loss: 0.2468 Epoch 26/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5734 - loss: 0.2465 Epoch 27/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5734 - loss: 0.2461 Epoch 28/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.5734 - loss: 0.2458 Epoch 29/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5734 - loss: 0.2454 Epoch 30/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5734 - loss: 0.2450 Epoch 31/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.5938 - loss: 0.2446 Epoch 32/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.6297 - loss: 0.2442 Epoch 33/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.6297 - loss: 0.2438 Epoch 34/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6422 - loss: 0.2434 Epoch 35/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6422 - loss: 0.2429 Epoch 36/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6422 - loss: 0.2425 Epoch 37/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6422 - loss: 0.2421 Epoch 38/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7141 - loss: 0.2416 Epoch 39/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.6781 - loss: 0.2412 Epoch 40/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6781 - loss: 0.2407 Epoch 41/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6781 - loss: 0.2402 Epoch 42/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6781 - loss: 0.2397 Epoch 43/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7344 - loss: 0.2392 Epoch 44/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7344 - loss: 0.2387 Epoch 45/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7344 - loss: 0.2382 Epoch 46/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7344 - loss: 0.2377 Epoch 47/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7344 - loss: 0.2371 Epoch 48/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 22ms/step - accuracy: 0.7344 - loss: 0.2366 Epoch 49/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7344 - loss: 0.2360 Epoch 50/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7547 - loss: 0.2355 Epoch 51/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7547 - loss: 0.2349 Epoch 52/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7547 - loss: 0.2343 Epoch 53/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7547 - loss: 0.2338 Epoch 54/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.7422 - loss: 0.2332 Epoch 55/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.2326 Epoch 56/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.2320 Epoch 57/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7063 - loss: 0.2314 Epoch 58/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7063 - loss: 0.2309 Epoch 59/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.2303 Epoch 60/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7063 - loss: 0.2297 Epoch 61/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6938 - loss: 0.2291 Epoch 62/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6938 - loss: 0.2285 Epoch 63/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2279 Epoch 64/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2274 Epoch 65/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2268 Epoch 66/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2262 Epoch 67/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2257 Epoch 68/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2251 Epoch 69/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2246 Epoch 70/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2240 Epoch 71/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2235 Epoch 72/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2230 Epoch 73/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6578 - loss: 0.2224 Epoch 74/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2219 Epoch 75/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2214 Epoch 76/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2209 Epoch 77/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2204 Epoch 78/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2200 Epoch 79/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.6938 - loss: 0.2195 Epoch 80/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2190 Epoch 81/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2186 Epoch 82/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.6938 - loss: 0.2181 Epoch 83/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2177 Epoch 84/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2172 Epoch 85/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2168 Epoch 86/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2164 Epoch 87/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2160 Epoch 88/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2155 Epoch 89/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2151 Epoch 90/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2147 Epoch 91/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2143 Epoch 92/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2140 Epoch 93/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2136 Epoch 94/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2132 Epoch 95/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2128 Epoch 96/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.6938 - loss: 0.2125 Epoch 97/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2121 Epoch 98/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2117 Epoch 99/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.6938 - loss: 0.2114 Epoch 100/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6938 - loss: 0.2110 Epoch 101/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2107 Epoch 102/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2103 Epoch 103/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2100 Epoch 104/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2096 Epoch 105/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.6938 - loss: 0.2093 Epoch 106/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.6938 - loss: 0.2089 Epoch 107/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.6938 - loss: 0.2086 Epoch 108/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.6938 - loss: 0.2082 Epoch 109/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - accuracy: 0.6938 - loss: 0.2079 Epoch 110/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2075 Epoch 111/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2072 Epoch 112/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.6938 - loss: 0.2069 Epoch 113/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 25ms/step - accuracy: 0.6938 - loss: 0.2065 Epoch 114/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - accuracy: 0.6938 - loss: 0.2062 Epoch 115/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.6938 - loss: 0.2059 Epoch 116/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.6938 - loss: 0.2055 Epoch 117/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.6938 - loss: 0.2052 Epoch 118/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.6938 - loss: 0.2048 Epoch 119/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6938 - loss: 0.2045 Epoch 120/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.6938 - loss: 0.2042 Epoch 121/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2038 Epoch 122/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2035 Epoch 123/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2032 Epoch 124/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.6938 - loss: 0.2028 Epoch 125/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.6938 - loss: 0.2025 Epoch 126/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.2021 Epoch 127/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.2018 Epoch 128/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.2015 Epoch 129/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.2011 Epoch 130/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7063 - loss: 0.2008 Epoch 131/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.2004 Epoch 132/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7063 - loss: 0.2001 Epoch 133/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7063 - loss: 0.1997 Epoch 134/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7063 - loss: 0.1994 Epoch 135/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.1991 Epoch 136/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.1987 Epoch 137/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7063 - loss: 0.1984 Epoch 138/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.1980 Epoch 139/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7063 - loss: 0.1977 Epoch 140/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1973 Epoch 141/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1970 Epoch 142/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1966 Epoch 143/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1963 Epoch 144/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1959 Epoch 145/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7422 - loss: 0.1956 Epoch 146/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - accuracy: 0.7422 - loss: 0.1952 Epoch 147/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7422 - loss: 0.1948 Epoch 148/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1945 Epoch 149/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1941 Epoch 150/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1938 Epoch 151/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1934 Epoch 152/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1931 Epoch 153/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1927 Epoch 154/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1923 Epoch 155/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1920 Epoch 156/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1916 Epoch 157/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7422 - loss: 0.1912 Epoch 158/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7422 - loss: 0.1909 Epoch 159/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1905 Epoch 160/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1901 Epoch 161/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1898 Epoch 162/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.7422 - loss: 0.1894 Epoch 163/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1890 Epoch 164/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1887 Epoch 165/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1883 Epoch 166/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1879 Epoch 167/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7422 - loss: 0.1876 Epoch 168/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.7422 - loss: 0.1872 Epoch 169/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.7422 - loss: 0.1868 Epoch 170/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7422 - loss: 0.1864 Epoch 171/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1861 Epoch 172/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7422 - loss: 0.1857 Epoch 173/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1853 Epoch 174/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1849 Epoch 175/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1846 Epoch 176/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7422 - loss: 0.1842 Epoch 177/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7422 - loss: 0.1838 Epoch 178/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1834 Epoch 179/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7422 - loss: 0.1830 Epoch 180/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7781 - loss: 0.1827 Epoch 181/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7781 - loss: 0.1823 Epoch 182/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7781 - loss: 0.1819 Epoch 183/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7781 - loss: 0.1815 Epoch 184/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1811 Epoch 185/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7781 - loss: 0.1807 Epoch 186/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7781 - loss: 0.1803 Epoch 187/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1800 Epoch 188/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1796 Epoch 189/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1792 Epoch 190/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7781 - loss: 0.1788 Epoch 191/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7781 - loss: 0.1784 Epoch 192/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1780 Epoch 193/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7781 - loss: 0.1776 Epoch 194/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1772 Epoch 195/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1768 Epoch 196/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.7781 - loss: 0.1764 Epoch 197/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.7781 - loss: 0.1760 Epoch 198/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1756 Epoch 199/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1752 Epoch 200/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1748 Epoch 201/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.7781 - loss: 0.1744 Epoch 202/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1740 Epoch 203/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1736 Epoch 204/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8141 - loss: 0.1732 Epoch 205/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8141 - loss: 0.1728 Epoch 206/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1724 Epoch 207/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8141 - loss: 0.1720 Epoch 208/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1716 Epoch 209/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8141 - loss: 0.1712 Epoch 210/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1708 Epoch 211/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1704 Epoch 212/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1700 Epoch 213/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1696 Epoch 214/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1692 Epoch 215/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1688 Epoch 216/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8141 - loss: 0.1684 Epoch 217/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1680 Epoch 218/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1676 Epoch 219/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8141 - loss: 0.1672 Epoch 220/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1668 Epoch 221/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1664 Epoch 222/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1660 Epoch 223/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1655 Epoch 224/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1651 Epoch 225/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1647 Epoch 226/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1643 Epoch 227/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1639 Epoch 228/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1635 Epoch 229/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1631 Epoch 230/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1627 Epoch 231/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1623 Epoch 232/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1619 Epoch 233/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1614 Epoch 234/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8141 - loss: 0.1610 Epoch 235/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1606 Epoch 236/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8141 - loss: 0.1602 Epoch 237/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8266 - loss: 0.1598 Epoch 238/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8266 - loss: 0.1594 Epoch 239/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8266 - loss: 0.1590 Epoch 240/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1586 Epoch 241/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8266 - loss: 0.1582 Epoch 242/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1577 Epoch 243/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8266 - loss: 0.1573 Epoch 244/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1569 Epoch 245/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1565 Epoch 246/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1561 Epoch 247/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1557 Epoch 248/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8266 - loss: 0.1553 Epoch 249/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8266 - loss: 0.1549 Epoch 250/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1544 Epoch 251/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8266 - loss: 0.1540 Epoch 252/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8266 - loss: 0.1536 Epoch 253/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8266 - loss: 0.1532 Epoch 254/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1528 Epoch 255/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1524 Epoch 256/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1520 Epoch 257/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8266 - loss: 0.1516 Epoch 258/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8625 - loss: 0.1512 Epoch 259/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8625 - loss: 0.1507 Epoch 260/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8625 - loss: 0.1503 Epoch 261/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8625 - loss: 0.1499 Epoch 262/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8625 - loss: 0.1495 Epoch 263/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8625 - loss: 0.1491 Epoch 264/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8625 - loss: 0.1487 Epoch 265/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8625 - loss: 0.1483 Epoch 266/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8625 - loss: 0.1479 Epoch 267/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8625 - loss: 0.1475 Epoch 268/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8625 - loss: 0.1471 Epoch 269/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8625 - loss: 0.1467 Epoch 270/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8984 - loss: 0.1462 Epoch 271/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8984 - loss: 0.1458 Epoch 272/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.8984 - loss: 0.1454 Epoch 273/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.8984 - loss: 0.1450 Epoch 274/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8984 - loss: 0.1446 Epoch 275/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8984 - loss: 0.1442 Epoch 276/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8984 - loss: 0.1438 Epoch 277/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8984 - loss: 0.1434 Epoch 278/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 36ms/step - accuracy: 0.9187 - loss: 0.1430 Epoch 279/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9187 - loss: 0.1426 Epoch 280/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.9187 - loss: 0.1422 Epoch 281/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9187 - loss: 0.1418 Epoch 282/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9187 - loss: 0.1414 Epoch 283/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9187 - loss: 0.1410 Epoch 284/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9187 - loss: 0.1406 Epoch 285/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9187 - loss: 0.1402 Epoch 286/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9187 - loss: 0.1398 Epoch 287/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9187 - loss: 0.1395 Epoch 288/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9187 - loss: 0.1391 Epoch 289/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9187 - loss: 0.1387 Epoch 290/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9187 - loss: 0.1383 Epoch 291/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9187 - loss: 0.1379 Epoch 292/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.9187 - loss: 0.1375 Epoch 293/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9187 - loss: 0.1371 Epoch 294/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9187 - loss: 0.1367 Epoch 295/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9187 - loss: 0.1364 Epoch 296/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1360 Epoch 297/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1356 Epoch 298/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1352 Epoch 299/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1348 Epoch 300/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1345 Epoch 301/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8828 - loss: 0.1341 Epoch 302/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1337 Epoch 303/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1334 Epoch 304/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1330 Epoch 305/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1326 Epoch 306/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1322 Epoch 307/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1319 Epoch 308/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1315 Epoch 309/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1312 Epoch 310/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1308 Epoch 311/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8828 - loss: 0.1304 Epoch 312/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1301 Epoch 313/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1297 Epoch 314/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1294 Epoch 315/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1290 Epoch 316/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1287 Epoch 317/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1283 Epoch 318/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1280 Epoch 319/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1276 Epoch 320/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1273 Epoch 321/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1269 Epoch 322/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8828 - loss: 0.1266 Epoch 323/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8828 - loss: 0.1262 Epoch 324/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1259 Epoch 325/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - accuracy: 0.8828 - loss: 0.1256 Epoch 326/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1252 Epoch 327/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8828 - loss: 0.1249 Epoch 328/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.8828 - loss: 0.1246 Epoch 329/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1242 Epoch 330/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8828 - loss: 0.1239 Epoch 331/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1236 Epoch 332/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8828 - loss: 0.1232 Epoch 333/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1229 Epoch 334/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1226 Epoch 335/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1223 Epoch 336/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8828 - loss: 0.1219 Epoch 337/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1216 Epoch 338/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1213 Epoch 339/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1210 Epoch 340/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1207 Epoch 341/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1204 Epoch 342/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8828 - loss: 0.1200 Epoch 343/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8828 - loss: 0.1197 Epoch 344/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8828 - loss: 0.1194 Epoch 345/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8828 - loss: 0.1191 Epoch 346/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1188 Epoch 347/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8828 - loss: 0.1185 Epoch 348/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1182 Epoch 349/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8828 - loss: 0.1179 Epoch 350/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1176 Epoch 351/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1173 Epoch 352/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1170 Epoch 353/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1167 Epoch 354/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1164 Epoch 355/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1161 Epoch 356/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1158 Epoch 357/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1155 Epoch 358/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1152 Epoch 359/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1150 Epoch 360/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1147 Epoch 361/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1144 Epoch 362/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1141 Epoch 363/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1138 Epoch 364/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1135 Epoch 365/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1132 Epoch 366/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1130 Epoch 367/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1127 Epoch 368/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1124 Epoch 369/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.8828 - loss: 0.1121 Epoch 370/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1119 Epoch 371/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.8828 - loss: 0.1116 Epoch 372/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1113 Epoch 373/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1110 Epoch 374/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8828 - loss: 0.1108 Epoch 375/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.8828 - loss: 0.1105 Epoch 376/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1102 Epoch 377/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.8828 - loss: 0.1100 Epoch 378/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1097 Epoch 379/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.8828 - loss: 0.1094 Epoch 380/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1092 Epoch 381/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.8828 - loss: 0.1089 Epoch 382/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1086 Epoch 383/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1084 Epoch 384/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1081 Epoch 385/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1079 Epoch 386/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1076 Epoch 387/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.1073 Epoch 388/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1071 Epoch 389/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1068 Epoch 390/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1066 Epoch 391/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.1063 Epoch 392/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1061 Epoch 393/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.1058 Epoch 394/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1056 Epoch 395/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1053 Epoch 396/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.1051 Epoch 397/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1048 Epoch 398/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.1046 Epoch 399/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.1043 Epoch 400/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1041 Epoch 401/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1039 Epoch 402/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1036 Epoch 403/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1034 Epoch 404/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1031 Epoch 405/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1029 Epoch 406/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.1026 Epoch 407/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1024 Epoch 408/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.1022 Epoch 409/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.9031 - loss: 0.1019 Epoch 410/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1017 Epoch 411/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1015 Epoch 412/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1012 Epoch 413/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.1010 Epoch 414/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.1008 Epoch 415/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.1005 Epoch 416/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1003 Epoch 417/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.1001 Epoch 418/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0998 Epoch 419/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0996 Epoch 420/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0994 Epoch 421/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0991 Epoch 422/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0989 Epoch 423/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0987 Epoch 424/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0985 Epoch 425/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0982 Epoch 426/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0980 Epoch 427/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0978 Epoch 428/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0976 Epoch 429/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0973 Epoch 430/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0971 Epoch 431/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0969 Epoch 432/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0967 Epoch 433/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.9031 - loss: 0.0965 Epoch 434/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 15ms/step - accuracy: 0.9031 - loss: 0.0962 Epoch 435/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.9031 - loss: 0.0960 Epoch 436/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0958 Epoch 437/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.9031 - loss: 0.0956 Epoch 438/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0954 Epoch 439/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.9031 - loss: 0.0952 Epoch 440/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0949 Epoch 441/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0947 Epoch 442/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 31ms/step - accuracy: 0.9031 - loss: 0.0945 Epoch 443/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0943 Epoch 444/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0941 Epoch 445/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0939 Epoch 446/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0937 Epoch 447/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0934 Epoch 448/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0932 Epoch 449/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0930 Epoch 450/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0928 Epoch 451/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0926 Epoch 452/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0924 Epoch 453/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0922 Epoch 454/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0920 Epoch 455/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0918 Epoch 456/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0916 Epoch 457/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0913 Epoch 458/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0911 Epoch 459/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0909 Epoch 460/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0907 Epoch 461/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0905 Epoch 462/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0903 Epoch 463/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0901 Epoch 464/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0899 Epoch 465/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0897 Epoch 466/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0895 Epoch 467/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0893 Epoch 468/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0891 Epoch 469/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0889 Epoch 470/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0887 Epoch 471/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0885 Epoch 472/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0883 Epoch 473/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0881 Epoch 474/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0879 Epoch 475/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0877 Epoch 476/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0875 Epoch 477/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0873 Epoch 478/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0871 Epoch 479/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 14ms/step - accuracy: 0.9031 - loss: 0.0869 Epoch 480/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0867 Epoch 481/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0865 Epoch 482/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0863 Epoch 483/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0861 Epoch 484/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0859 Epoch 485/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0857 Epoch 486/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0856 Epoch 487/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0854 Epoch 488/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0852 Epoch 489/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0850 Epoch 490/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0848 Epoch 491/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 13ms/step - accuracy: 0.9031 - loss: 0.0846 Epoch 492/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0844 Epoch 493/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0842 Epoch 494/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0840 Epoch 495/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0838 Epoch 496/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step - accuracy: 0.9031 - loss: 0.0836 Epoch 497/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0835 Epoch 498/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9031 - loss: 0.0833 Epoch 499/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9391 - loss: 0.0831 Epoch 500/500 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 12ms/step - accuracy: 0.9391 - loss: 0.0829 3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step 0.65
import matplotlib.pyplot as plt
# you can retrieve the history of training to visualize the loss
loss = cnn_cls.history.history["loss"]
plt.plot(loss, color='blue')
plt.xlabel("Epoch")
plt.ylabel("Loss")
plt.title("Evolution of the training loss.")
plt.show()
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
import os
cnn_best = tf.keras.models.load_model("best_cnn.keras", compile=False)
#get conv weights of layer 1 (if you replace 0 by 1, you get the bias)
conv1_weights = cnn_best.layers[1].get_weights()[0]
#get conv weights of layer 2 (in TimeCNN, it corresponds to layer 3)
conv2_weights = cnn_best.layers[3].get_weights()[0]
fig,ax = plt.subplots(2,6,figsize=(20,7))
cmap = plt.get_cmap('tab20c')
values = np.linspace(0, 1, 18)
np.random.shuffle(values)
for i in range(6):
ax[0,i].plot(conv1_weights[:,0,i],color=cmap(values[i]))
ax[0,i].set_title('Conv layer 1, Filter ' + str(i+1))
ax[1,i].plot(conv2_weights[:,0,i],color=cmap(values[6+i]))
ax[1,i].set_title('Conv layer 2, Filter ' + str(i+1))
plt.tight_layout()
plt.show()
os.remove("best_cnn.keras")
from aeon.regression.deep_learning import CNNRegressor
from sklearn.metrics import mean_squared_error
cnn_rgs = CNNRegressor(n_epochs=500)
cnn_rgs.fit(X_train_r, y_train_r)
cnn_rgs_preds = cnn_rgs.predict(X_test_r)
print(mean_squared_error(y_test_r, cnn_rgs_preds))
5/5 ━━━━━━━━━━━━━━━━━━━━ 0s 11ms/step 1.4237205348388349
from aeon.visualisation import plot_scatter_predictions
plot_scatter_predictions(y_test_r, cnn_rgs_preds, title="TimeCNN Predictions")
(<Figure size 600x600 with 1 Axes>, <Axes: title={'center': 'TimeCNN Predictions'}, xlabel='Actual values', ylabel='Predicted values'>)
Warning: The following models are computationally expensive and may take a long time to train on some setups (especially with no GPU).
InceptionTime [3] is an ensemble of multiple Inception models, a convolution based neural network that leverages over TimeCNN by applying different convolution layers in parallel with different characteristics as well as using residual connections to avoid the vanishing gradient issue.
from aeon.classification.deep_learning import InceptionTimeClassifier
from sklearn.metrics import accuracy_score
inceptiontime_cls = InceptionTimeClassifier(n_epochs=500)
inceptiontime_cls.fit(X_train_c, y_train_c)
inceptiontime_cls_preds = inceptiontime_cls.predict(X_test_c)
print("InceptionTime: ",accuracy_score(y_test_c, inceptiontime_cls_preds))
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 339ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 383ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 346ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 338ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 338ms/step InceptionTime: 0.725
from aeon.regression.deep_learning import InceptionTimeRegressor
from sklearn.metrics import mean_squared_error
inceptiontime_rgs = InceptionTimeRegressor(n_epochs=500)
inceptiontime_rgs.fit(X_train_r, y_train_r)
inceptiontime_rgs_preds = inceptiontime_rgs.predict(X_test_r)
print("InceptionTime: ",mean_squared_error(y_test_r, inceptiontime_rgs_preds))
2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 344ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 346ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 350ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 328ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 336ms/step InceptionTime: 1.1325230459567603
from aeon.visualisation import plot_scatter_predictions
plot_scatter_predictions(y_test_r, inceptiontime_rgs_preds, title="InceptionTime Regressor Predictions")
(<Figure size 600x600 with 1 Axes>, <Axes: title={'center': 'InceptionTime Regressor Predictions'}, xlabel='Actual values', ylabel='Predicted values'>)
H-InceptionTime [4] leverages over the InceptionTime model by adding some hand-crafted convolution filters at the beginning of the model. Such feature engineering technique helps the model generalize better to unseen cases.
from aeon.classification.deep_learning import InceptionTimeClassifier
from sklearn.metrics import accuracy_score
h_inceptiontime_cls = InceptionTimeClassifier(n_epochs=500, use_custom_filters=True)
h_inceptiontime_cls.fit(X_train_c, y_train_c)
h_inceptiontime_cls_preds = h_inceptiontime_cls.predict(X_test_c)
print("H-InceptionTime: ",accuracy_score(y_test_c, h_inceptiontime_cls_preds))
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 419ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 420ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 420ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 422ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 418ms/step H-InceptionTime: 0.725
from aeon.regression.deep_learning import InceptionTimeRegressor
from sklearn.metrics import mean_squared_error
h_inceptiontime_rgs = InceptionTimeRegressor(n_epochs=20, use_custom_filters=True)
h_inceptiontime_rgs.fit(X_train_r, y_train_r)
h_inceptiontime_rgs_preds = h_inceptiontime_rgs.predict(X_test_r)
print("H-InceptionTime: ",mean_squared_error(y_test_r, h_inceptiontime_rgs_preds))
2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 403ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 403ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 403ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 408ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 396ms/step H-InceptionTime: 2.263269377928415
from aeon.visualisation import plot_scatter_predictions
plot_scatter_predictions(y_test_r, h_inceptiontime_rgs_preds, title="H-InceptionTime Regressor Predictions")
(<Figure size 600x600 with 1 Axes>, <Axes: title={'center': 'H-InceptionTime Regressor Predictions'}, xlabel='Actual values', ylabel='Predicted values'>)
LITETime [8] is currently the smallest deep learning model that achieves state-of-the-art performance on TSC. It is based on the Inception architecture but with way less parameters to train while utilizing as well the hand-crafted convolution filters in the first layer.
from aeon.classification.deep_learning import LITETimeClassifier
from sklearn.metrics import accuracy_score
litetime_cls = LITETimeClassifier(n_epochs=500)
litetime_cls.fit(X_train_c, y_train_c)
litetime_cls_preds = litetime_cls.predict(X_test_c)
print("LITETime: ",accuracy_score(y_test_c, litetime_cls_preds))
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 257ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 251ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 269ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 230ms/step 1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 220ms/step LITETime: 0.675
from aeon.regression.deep_learning import LITETimeRegressor
from sklearn.metrics import mean_squared_error
litetime_rgs = LITETimeRegressor(n_epochs=500)
litetime_rgs.fit(X_train_r, y_train_r)
litetime_rgs_preds = litetime_rgs.predict(X_test_r)
print("LITETime: ",mean_squared_error(y_test_r, litetime_rgs_preds))
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 196ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 194ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 206ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 206ms/step 2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 209ms/step LITETime: 1.1121212011263841
from aeon.visualisation import plot_scatter_predictions
plot_scatter_predictions(y_test_r, litetime_rgs_preds, title="LITETime Regressor Predictions")
(<Figure size 600x600 with 1 Axes>, <Axes: title={'center': 'LITETime Regressor Predictions'}, xlabel='Actual values', ylabel='Predicted values'>)
from aeon.benchmarking import get_estimator_results_as_array
from aeon.datasets.tsc_datasets import univariate
names = ["CNN", "InceptionTime", "H-InceptionTime", "LITETime", "1NN-DTW"]
results, present_names = get_estimator_results_as_array(
names, univariate, include_missing=False
)
results.shape
(112, 5)
from aeon.visualisation import plot_critical_difference
from aeon.visualisation import plot_boxplot_median
plot_critical_difference(results, names)
plot_boxplot_median(results, names, plot_type="boxplot")
(<Figure size 1000x600 with 1 Axes>, <Axes: >)
[1] Ismail Fawaz, Hassan, et al. "Deep learning for time series classification: a review." Data mining and knowledge discovery 33.4 (2019): 917-963.
[2] Wang, Zhiguang et al. "Time series classification from scratch with deep neural networks: A strong baseline." 2017 International joint conference on neural networks (IJCNN). IEEE, 2017.
[3] Ismail Fawaz, Hassan, et al. "Inceptiontime: Finding alexnet for time series classification." Data Mining and Knowledge Discovery 34.6 (2020): 1936-1962.
[4] Ismail-Fawaz, Ali, et al. "Deep Learning For Time Series Classification Using New Hand-Crafted Convolution Filters." International Conference on Big Data. IEEE, (2022).
[5] Middlehurst, Matthew, Patrick Schäfer, and Anthony Bagnall. "Bake off redux: a review and experimental evaluation of recent time series classification algorithms." Data Mining and Knowledge Discovery (2024): 1-74.
[6] Guijo-Rubio, David, et al. "Unsupervised Feature Based Algorithms for Time Series Extrinsic Regression." arXiv preprint arXiv:2305.01429 (2023).
[7] Zhao et al. Convolutional neural networks for time series classification. Journal of Systems Engineering and Electronics 28.1 (2017)
[8] Ismail-Fawaz, Ali, et al. "Lite: Light inception with boosting techniques for time series classification." 2023 IEEE 10th International Conference on Data Science and Advanced Analytics (DSAA). IEEE, 2023.