Skip to content
Snippets Groups Projects

Resolve "release v1.4.0"

Merged Ghost User requested to merge release_v1.4.0 into master
2 files
+ 13
4
Compare changes
  • Side-by-side
  • Inline
Files
2
__author__ = "Lukas Leufen"
__date__ = '2021-02-'
from functools import reduce
from mlair.model_modules import AbstractModelClass
from mlair.helpers import select_from_dict
@@ -59,7 +61,7 @@ class FCN_64_32_16(AbstractModelClass):
class FCN(AbstractModelClass):
"""
A customised model 4 Dense layers (64, 32, 16, window_lead_time), where the last layer is the output layer depending
A customisable fully connected network (64, 32, 16, window_lead_time), where the last layer is the output layer depending
on the window_lead_time parameter.
"""
@@ -69,7 +71,7 @@ class FCN(AbstractModelClass):
_requirements = ["lr", "beta_1", "beta_2", "epsilon", "decay", "amsgrad", "momentum", "nesterov"]
def __init__(self, input_shape: list, output_shape: list, activation="relu", optimizer="adam",
layers=1, neurons=10, **kwargs):
n_layer=1, n_hidden=10, **kwargs):
"""
Sets model and loss depending on the given arguments.
@@ -84,7 +86,8 @@ class FCN(AbstractModelClass):
# settings
self.activation = self._set_activation(activation)
self.optimizer = self._set_optimizer(optimizer, **kwargs)
self.layer_configuration = (layers, neurons)
self.layer_configuration = (n_layer, n_hidden)
self._update_model_name()
# apply to model
self.set_model()
@@ -110,6 +113,12 @@ class FCN(AbstractModelClass):
except KeyError:
raise AttributeError(f"Given optimizer {optimizer} is not supported in this model class.")
def _update_model_name(self):
n_layer, n_hidden = self.layer_configuration
n_input = str(reduce(lambda x, y: x * y, self._input_shape))
n_output = str(self._output_shape)
self.model_name += "_".join([n_input, *[f"{n_hidden}" for _ in range(n_layer)], n_output])
def set_model(self):
"""
Build the model.
Loading