def test_config(self): r2_obj = RSquare(name="r_square") self.assertEqual(r2_obj.name, "r_square") self.assertEqual(r2_obj.dtype, tf.float32) # Check save and restore config r2_obj2 = RSquare.from_config(r2_obj.get_config()) self.assertEqual(r2_obj2.name, "r_square") self.assertEqual(r2_obj2.dtype, tf.float32)
def test_config(): r2_obj = RSquare(name="r_square") assert r2_obj.name == "r_square" assert r2_obj.dtype == tf.float32 # Check save and restore config r2_obj2 = RSquare.from_config(r2_obj.get_config()) assert r2_obj2.name == "r_square" assert r2_obj2.dtype == tf.float32
def test_config(multioutput): r2_obj = RSquare(multioutput=multioutput, name="r_square") assert r2_obj.name == "r_square" assert r2_obj.dtype == tf.float32 assert r2_obj.multioutput == multioutput # Check save and restore config r2_obj2 = RSquare.from_config(r2_obj.get_config()) assert r2_obj2.name == "r_square" assert r2_obj2.dtype == tf.float32 assert r2_obj2.multioutput == multioutput
def test_keras_fit(): model = tf.keras.Sequential([tf.keras.layers.Dense(1)]) model.compile(loss="mse", metrics=[RSquare(y_shape=(1, ))]) data = tf.data.Dataset.from_tensor_slices( (tf.random.normal(shape=(100, 1)), tf.random.normal(shape=(100, 1)))) data = data.batch(10) model.fit(x=data, validation_data=data)
def _build_model(self) -> Sequential: model = Sequential() for state in self.sequence: if isinstance(state, Input): model.add(layers.Input(shape=(state.units,))) elif isinstance(state, Hidden): model.add(layers.Dense(units=state.units, activation=state.activation)) elif isinstance(state, Dropout): model.add(layers.Dropout(rate=state.rate)) elif isinstance(state, Output): model.add(layers.Dense(units=state.units, activation=state.activation)) optimizer = OPTIMIZER if optimizer == 'adam': optimizer = Adam(LEARNING_RATE) elif optimizer == 'nadam': optimizer = Nadam(LEARNING_RATE) elif optimizer == 'rmsprop': optimizer = RMSprop(LEARNING_RATE) metrics = [] for metric in METRICS: if metric == 'r_square': metric = RSquare(name=metric, y_shape=(1,)) elif metric == 'rmse': metric = RootMeanSquaredError(metric) metrics.append(metric) model.compile( optimizer=optimizer, loss=LOSS, metrics=metrics ) return model
def initialize_vars( y_shape=(), multioutput: str = "uniform_average", num_regressors: tf.int32 = 0, ): return RSquare(y_shape=y_shape, multioutput=multioutput, num_regressors=num_regressors)
def initialize_vars(self): r2_obj = RSquare() self.evaluate(tf.compat.v1.variables_initializer(r2_obj.variables)) return r2_obj
def initialize_vars(y_shape=(), multioutput: str = "uniform_average"): return RSquare(y_shape=y_shape, multioutput=multioutput)
def initialize_vars(self, y_shape=(), multioutput: str = "uniform_average"): r2_obj = RSquare(y_shape=y_shape, multioutput=multioutput) self.evaluate(tf.compat.v1.variables_initializer(r2_obj.variables)) return r2_obj