From b409e05a1a0094f47dcabc0738da612295e313f0 Mon Sep 17 00:00:00 2001 From: "Andrew Z. Summers" Date: Wed, 12 Jul 2023 22:01:50 -0500 Subject: [PATCH] Fix AE layers and add test --- pyod/models/auto_encoder.py | 2 +- pyod/test/test_auto_encoder.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pyod/models/auto_encoder.py b/pyod/models/auto_encoder.py index b330eb226..fdff91911 100644 --- a/pyod/models/auto_encoder.py +++ b/pyod/models/auto_encoder.py @@ -178,7 +178,7 @@ def _build_model(self): model.add(Dropout(self.dropout_rate)) # Additional layers - for i, hidden_neurons in enumerate(self.hidden_neurons_, 1): + for hidden_neurons in self.hidden_neurons_[1:]: model.add(Dense( hidden_neurons, activation=self.hidden_activation, diff --git a/pyod/test/test_auto_encoder.py b/pyod/test/test_auto_encoder.py index 8295f9bb6..85bd3ed8c 100644 --- a/pyod/test/test_auto_encoder.py +++ b/pyod/test/test_auto_encoder.py @@ -120,6 +120,14 @@ def test_fit_predict_score(self): def test_model_clone(self): # for deep models this may not apply clone_clf = clone(self.clf) + + def test_layer_count(self): + hidden_layers = len(self.clf.hidden_neurons) + # add one to account for the dropout after the input layer + dropout_layers = hidden_layers + 1 + # add two for the input and output layers + expected_layer_count = hidden_layers + dropout_layers + 2 + assert(len(self.clf.model_.layers) == expected_layer_count) def tearDown(self): pass