From be2eda4650ea8ee01166c217452f72317ec9dce4 Mon Sep 17 00:00:00 2001 From: Nikolai Hartmann <nikolai.hartmann@gmx.de> Date: Tue, 20 Nov 2018 09:45:27 +0100 Subject: [PATCH] add another hidden layer on top of regression targets --- toolkit.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/toolkit.py b/toolkit.py index fb51f65..d673121 100755 --- a/toolkit.py +++ b/toolkit.py @@ -791,14 +791,22 @@ class ClassificationProject(object): if (dropout_fraction is not None) and (dropout_fraction > 0): hidden_layer = Dropout(rate=dropout_fraction)(hidden_layer) - # one output node for binary classification - output_layer = Dense(1, activation=self.activation_function_output)(hidden_layer) - outputs = [output_layer] - # optional regression targets + extra_targets = [] for target_field in self.target_fields: extra_target = Dense(1, activation="linear", name="target_{}".format(target_field))(hidden_layer) - outputs.append(extra_target) + extra_targets.append(extra_target) + + if not self.target_fields: + # one output node for binary classification + output_layer = Dense(1, activation=self.activation_function_output)(hidden_layer) + outputs = [output_layer] + else: + # add another hidden layer on top of the regression targets and previous hidden layers + merge = concatenate([hidden_layer]+extra_targets) + hidden_layer2 = Dense(64, activation=self.activation_function)(merge) + output_class = Dense(1, activation=self.activation_function_output)(hidden_layer2) + outputs = [output_class]+extra_targets self._model = Model(inputs=[input_layer], outputs=outputs) self._compile_or_load_model() -- GitLab