diff --git a/mlair/model_modules/convolutional_networks.py b/mlair/model_modules/convolutional_networks.py
index 2270c1ee2abf8b17913e6017181cffcde17bd923..7bdd2ce210c126bf47dcf02c28f4efaacf789457 100644
--- a/mlair/model_modules/convolutional_networks.py
+++ b/mlair/model_modules/convolutional_networks.py
@@ -75,7 +75,7 @@ class CNNfromConfig(AbstractModelClass):
         # apply to model
         self.set_model()
         self.set_compile_options()
-        self.set_custom_objects(loss=custom_loss([keras.losses.mean_squared_error, var_loss]), var_loss=var_loss)
+        self.set_custom_objects(loss=self.compile_options["loss"][0], var_loss=var_loss)
 
     def set_model(self):
         x_input = keras.layers.Input(shape=self._input_shape)
diff --git a/mlair/run_modules/model_setup.py b/mlair/run_modules/model_setup.py
index bf09ac6fc8c63bcfc31024dafb550c84e0ff5df4..b51a3f9c76ace4feef72e4c96945b463fb69a673 100644
--- a/mlair/run_modules/model_setup.py
+++ b/mlair/run_modules/model_setup.py
@@ -224,10 +224,13 @@ class ModelSetup(RunEnvironment):
             if v is None:
                 continue
             if isinstance(v, list):
-                if isinstance(v[0], dict):
-                    v = ["{" + vi + "}" for vi in [",".join(f"{_f(str(uk))}:{_f(str(uv))}" for uk, uv in d.items()) for d in v]]
+                if len(v) > 0:
+                    if isinstance(v[0], dict):
+                        v = ["{" + vi + "}" for vi in [",".join(f"{_f(str(uk))}:{_f(str(uv))}" for uk, uv in d.items()) for d in v]]
+                    else:
+                        v = ",".join(_f(str(u)) for u in v)
                 else:
-                    v = ",".join(_f(str(u)) for u in v)
+                    v = "[]"
             if "<" in str(v):
                 v = _f(str(v))
             df.loc[k] = str(v)