From e4212c7c6e84c92ec70ad3716b21220d6919d3b3 Mon Sep 17 00:00:00 2001
From: Nikolai Hartmann <Nikolai.Hartmann@physik.uni-muenchen.de>
Date: Mon, 19 Nov 2018 14:14:13 +0100
Subject: [PATCH] add regression targets to models

---
 toolkit.py | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/toolkit.py b/toolkit.py
index cb32d90..620d3f6 100755
--- a/toolkit.py
+++ b/toolkit.py
@@ -734,8 +734,14 @@ class ClassificationProject(object):
 
             # one output node for binary classification
             output_layer = Dense(1, activation=self.activation_function_output)(hidden_layer)
+            outputs = [output_layer]
 
-            self._model = Model(inputs=[input_layer], outputs=[output_layer])
+            # optional regression 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)
+
+            self._model = Model(inputs=[input_layer], outputs=outputs)
             self._compile_or_load_model()
 
         return self._model
@@ -1861,7 +1867,14 @@ class ClassificationProjectRNN(ClassificationProject):
                 if (dropout_fraction is not None) and (dropout_fraction > 0):
                     combined = Dropout(rate=dropout_fraction)(combined)
             combined = Dense(1, activation=self.activation_function_output)(combined)
-            self._model = Model(inputs=rnn_inputs+[flat_input], outputs=combined)
+            outputs = [combined]
+
+            # optional regression targets
+            for target_field in self.target_fields:
+                extra_target = Dense(1, activation="linear", name="target_{}".format(target_field))(combined)
+                outputs.append(extra_target)
+
+            self._model = Model(inputs=rnn_inputs+[flat_input], outputs=outputs)
             self._compile_or_load_model()
         return self._model
 
-- 
GitLab