Source code for pararealml.operators.ml.fnn_regressor

from typing import Sequence, Optional

import tensorflow as tf


[docs]class FNNRegressor(tf.keras.Sequential): """ A fully-connected feedforward neural network regression model. """ def __init__( self, layer_sizes: Sequence[int], initialization: str = 'glorot_uniform', activation: Optional[str] = 'tanh'): """ :param layer_sizes: a list of the sizes of the layers including the input layer :param initialization: the initialization method to use for the weights of the layers :param activation: the activation function to use for the hidden layers """ if len(layer_sizes) < 2: raise ValueError( f'number of layers ({len(layer_sizes)}) must be at least 2') super(FNNRegressor, self).__init__() self.add(tf.keras.layers.InputLayer(input_shape=layer_sizes[0])) for layer_size in layer_sizes[1:-1]: self.add(tf.keras.layers.Dense( layer_size, kernel_initializer=initialization, activation=activation)) self.add(tf.keras.layers.Dense( layer_sizes[-1], kernel_initializer=initialization))