0

I am new to Tensorflow ,I donot know how to get objective set to at least 10% val_recall with maximum val_precision in keras tuner.

can somebody please let me know what needs to be done for f1score as a metric in keras-tuner. Currently it is set to 'val_accuracy'

I want at least 10% val_recall with maximum val_precision.

from keras_tuner import HyperModel
import keras_tuner as kt
from tensorflow import keras
import tensorflow_addons as tfa

 def model_builder(hp):
    hp_units = hp.Int('units', min_value=32, max_value=512, step=32)
    model = keras.Sequential()
    model.add(tf.keras.layers.Conv1D(filters=hp_units, kernel_size=3,padding='same',activation='relu'))
    model.add(tf.keras.layers.MaxPooling1D())
    model.add(tf.keras.layers.Conv1D(filters=hp_units, kernel_size=3,padding='same',activation='relu'))
    model.add(tf.keras.layers.MaxPooling1D())
    model.add(tf.keras.layers.Conv1D(filters=hp_units, kernel_size=3,padding='same',activation='relu'))
    model.add(tf.keras.layers.MaxPooling1D())
    model.add(tf.keras.layers.Flatten())
    model.add(tf.keras.layers.Dense(128, activation='relu'))
    model.add(tf.keras.layers.Dense(1, activation='sigmoid',bias_initializer=tf.keras.initializers.Constant(output_bias)))

    hp_learning_rate = hp.Choice('learning_rate', values=[1e-3, 1e-4])
    
    model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=hp_learning_rate),
                  loss=tf.keras.losses.BinaryCrossentropy(),
                  metrics=['accuracy', tf.keras.metrics.Precision(),
                           tf.keras.metrics.Recall(),
                           tfa.metrics.F1Score(num_classes=1, average='macro',threshold=0.5)])
    return model

tuner = kt.Hyperband(model_builder,
                     objective='val_accuracy',
                     factor=3,
                     directory='my_dir',
                     project_name='intro_to_kt',
                     overwrite = True)
Granth
  • 325
  • 4
  • 17

0 Answers0