es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Métrica desconocida val_accuracy utilizando Keras Tuner

Estoy intentando usar el sintonizador Keras con el conjunto de datos fashion-mnist en Google Colab, este es mi código:

!pip install keras-tuner
import tensorflow as tf
import kerastuner
import numpy as np

print("Versión de TensorFlow: ", tf.version)

(xtrain, ytrain) , (xtest, ytest) = tf.keras.datasets.fashionmnist.loaddata()

def create_model(hp):

  numhiddenlayers = 1
  numunits = 8
  dropoutrate = 0.1
  learning_rate = 0.01

  if hp:
    numhiddenlayers = hp.Choice('numhiddenlayers', values = [1,2,3])
    numunits = hp.Choice('numunits', values = [8,16,32])
    dropoutrate = hp.Float('dropoutrate', minvalue = 0.1, maxvalue = 0.5)
    learningrate = hp.Float('learningrate', minvalue = 0.0001, maxvalue = 0.01)

  model = tf.keras.models.Sequential()

  model.add(tf.keras.layers.Flatten(input_shape = (28,28)))
  model.add(tf.keras.layers.Lambda(lambda x: x/255.))

  for _ in range(0, numhiddenlayers):
    model.add(tf.keras.layers.Dense(numunits, activation='relu'))
    model.add(tf.keras.layers.Dropout(dropoutrate))

  model.add(tf.keras.layers.Dense(10, activation='softmax'))

  model.compile(
      loss='sparsecategoricalcrossentropy',
      optimizer=tf.keras.optimizers.Adam(learningrate=learningrate),
      metrics=['accuracy']
  )

  return model

class CustomTuner(kerastuner.tuners.BayesianOptimization):
  def runtrial(self, trial, *args, **kwargs):
    kwargs['batchsize'] = trial.hyperparameters.Int('batchsize', 32, 128, step=32)
    super(CustomTuner, self).runtrial(trial, args, *kwargs)

tuner = CustomTuner(
    create_model,
    objective='val_accuracy',
    max_trials = 20,
    directory= 'logs',
    project_name='fashion_minist',
    overwrite=True,
)

search = tuner.search(
    xtrain, ytrain,
    validation_data=(xtest, y_test),
    epochs = 5,
)

Y estoy obteniendo el siguiente error:

ValueError: Unknown metric: val_accuracy

¿Estoy haciendo algo mal? Estoy obteniendo valores de val_accuracy en el proceso de entrenamiento, pero cuando el primer intento termina, se detiene con este error.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que falta el argumento metrics en la función model.compile(). El argumento metrics debería ser una lista de métricas que deseas hacer un seguimiento durante el entrenamiento. En tu caso, debes agregar val_accuracy a la lista de métricas.

    Por ejemplo:

    model.compile(
    loss='sparse_categorical_crossentropy',
    optimizer=tf.keras.optimizers.Adam(learning_rate=learning_rate),
    metrics=['accuracy', 'val_accuracy']
    )

Comments are closed.