Skip to content
Snippets Groups Projects
Commit 704d9976 authored by lukas leufen's avatar lukas leufen
Browse files

Merge branch 'lukas_issue284_feat_create-fcn-model-class' into 'develop'

addendum to FCN class

See merge request toar/mlair!260
parents 3b0bac44 782f111e
No related branches found
No related tags found
6 merge requests!319add all changes of dev into release v1.4.0 branch,!318Resolve "release v1.4.0",!283Merge latest develop into falcos issue,!264Merge develop into felix_issue287_tech-wrf-datahandler-should-inherit-from-singlestationdatahandler,!260addendum to FCN class,!259Draft: Resolve "WRF-Datahandler should inherit from SingleStationDatahandler"
Pipeline #61776 passed
...@@ -63,12 +63,13 @@ class FCN(AbstractModelClass): ...@@ -63,12 +63,13 @@ class FCN(AbstractModelClass):
""" """
_activation = {"relu": keras.layers.ReLU, "tanh": partial(keras.layers.Activation, "tanh"), _activation = {"relu": keras.layers.ReLU, "tanh": partial(keras.layers.Activation, "tanh"),
"sigmoid": partial(keras.layers.Activation, "sigmoid")} "sigmoid": partial(keras.layers.Activation, "sigmoid"),
"linear": partial(keras.layers.Activation, "linear")}
_optimizer = {"adam": keras.optimizers.adam, "sgd": keras.optimizers.SGD} _optimizer = {"adam": keras.optimizers.adam, "sgd": keras.optimizers.SGD}
_requirements = ["lr", "beta_1", "beta_2", "epsilon", "decay", "amsgrad", "momentum", "nesterov"] _requirements = ["lr", "beta_1", "beta_2", "epsilon", "decay", "amsgrad", "momentum", "nesterov"]
def __init__(self, input_shape: list, output_shape: list, activation="relu", optimizer="adam", def __init__(self, input_shape: list, output_shape: list, activation="relu", activation_output="linear",
n_layer=1, n_hidden=10, **kwargs): optimizer="adam", n_layer=1, n_hidden=10, **kwargs):
""" """
Sets model and loss depending on the given arguments. Sets model and loss depending on the given arguments.
...@@ -82,6 +83,7 @@ class FCN(AbstractModelClass): ...@@ -82,6 +83,7 @@ class FCN(AbstractModelClass):
# settings # settings
self.activation = self._set_activation(activation) self.activation = self._set_activation(activation)
self.activation_output = self._set_activation(activation_output)
self.optimizer = self._set_optimizer(optimizer, **kwargs) self.optimizer = self._set_optimizer(optimizer, **kwargs)
self.layer_configuration = (n_layer, n_hidden) self.layer_configuration = (n_layer, n_hidden)
self._update_model_name() self._update_model_name()
...@@ -127,7 +129,7 @@ class FCN(AbstractModelClass): ...@@ -127,7 +129,7 @@ class FCN(AbstractModelClass):
x_in = keras.layers.Dense(n_hidden)(x_in) x_in = keras.layers.Dense(n_hidden)(x_in)
x_in = self.activation()(x_in) x_in = self.activation()(x_in)
x_in = keras.layers.Dense(self._output_shape)(x_in) x_in = keras.layers.Dense(self._output_shape)(x_in)
out = self.activation()(x_in) out = self.activation_output()(x_in)
self.model = keras.Model(inputs=x_input, outputs=[out]) self.model = keras.Model(inputs=x_input, outputs=[out])
def set_compile_options(self): def set_compile_options(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment