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.

¿Cómo muestro las métricas después de ajustar un modelo de Keras?

Estoy aprendiendo sobre redes neuronales con los tutoriales de Kaggle. He creado una red neuronal para predecir la resistencia del concreto y quiero mostrar la métrica de error cuadrático medio (MSE, por sus siglas en inglés) después de ajustar el modelo. He fallado tanto con print(metrics) como al trazar las métricas (muestra un gráfico vacío).

df = concrete.copy()

df_train = df.sample(frac=0.7, random_state=0)
df_valid = df.drop(df_train.index)

X_train = df_train.drop('CompressiveStrength', axis=1)
X_valid = df_valid.drop('CompressiveStrength', axis=1)
y_train = df_train['CompressiveStrength']
y_valid = df_valid['CompressiveStrength']
model = keras.Sequential([
    layers.BatchNormalization(),
    layers.Dense(512, activation='relu', input_shape=input_shape),
    layers.BatchNormalization(),
    layers.Dense(512, activation='relu'),
    layers.Dropout(rate=0.3), # aplicar un dropout del 30% a la próxima capa
    layers.Dense(512, activation='relu'),
    layers.BatchNormalization(),
    layers.Dense(512, activation='relu'),
    layers.BatchNormalization(),
    layers.Dense(1),
])
model.compile(
    optimizer='sgd', # SGD es más sensible a diferencias de escala
    loss='mse',
    metrics=[tf.keras.metrics.MeanSquaredError()]
)
history = model.fit(
    X_train, y_train,
    validation_data=(X_valid, y_valid),
    batch_size=64,
    epochs=100,
    verbose=0,
    callbacks=[early_stopping],
)
print(history)
pyplot.plot(history.history['mean_squared_error'])
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para mostrar la métrica de MSE después de ajustar el modelo, puedes utilizar la función model.evaluate(), la cual retornará la pérdida y los valores de las métricas para el modelo en el conjunto de validación. Aquí tienes un ejemplo:

    # Ajustar el modelo
    history = model.fit(
        X_train, y_train,
        validation_data=(X_valid, y_valid),
        batch_size=64,
        epochs=100,
        verbose=0,
        callbacks=[early_stopping],
    )
    
    # Evaluar el modelo
    loss, mse = model.evaluate(X_valid, y_valid)
    
    # Imprimir las métricas
    print('MSE:', mse)
    

    Alternativamente, puedes acceder al error cuadrático medio desde el diccionario history.history, el cual almacena los valores de la pérdida y las métricas para cada época durante el entrenamiento. Aquí tienes un ejemplo de cómo graficar el MSE desde el objeto history:

    # Graficar el error cuadrático medio
    pyplot.plot(history.history['mean_squared_error'])
    pyplot.title('Error Cuadrático Medio')
    pyplot.ylabel('MSE')
    pyplot.xlabel('Época')
    pyplot.show()
    

    Ten en cuenta que mean_squared_error es el nombre de la métrica que especificaste en la función model.compile(), así que asegúrate de utilizar el mismo nombre al acceder a ella desde el diccionario history.history.

Comments are closed.