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.

Callback de programador de tasa de aprendizaje de XGBoost.

Estoy utilizando XGBoost para la clasificación de imágenes y cada vez que quiero usar los callbacks LearningRateScheduler o LearningRateDecay, obtengo algunos errores. Utilizo las mismas funciones que uso para LearningRateScheduler en Keras.

def read_lr_from_file(lr_file, epoch):
    with open('LR.txt', mode='r') as lr_file:
        for line in lr_file:
            step, lr = line.split(':')
            lr = lr.strip()
            if int(step) <= epoch and float(lr) > 0:
                learning_rate = float(lr)
    return learning_rate

def get_scheduler(lr_file):
    def scheduler(epoch):
        lr = read_lr_from_file(lr_file, epoch)
        return lr
    return scheduler

learning_rate = xgboost.callback.LearningRateScheduler(get_scheduler('LR.txt'))

trained_model = xgboost.train(params=params_1, dtrain=train_dataset, evals=[(val_dataset, 'eval')],
                              num_boost_round=1000, early_stopping_rounds=50, callbacks=[learning_rate],
                              verbose_eval=False)

Y se imprime el siguiente mensaje una y otra vez:

[20:33:17] WARNING: C:/Users/Administrator/workspace/xgboost-win64/release1.5.1/src/learner.cc:576: 
Parameters: { "min_child_weight", "n_estimators", "rate_drop" } might not be used.

This could be a false alarm, with some parameters getting used by language bindings but
  then being mistakenly passed down to XGBoost core, or some parameter actually being used
  but getting flagged wrongly here. Please open an issue if you find any such cases.

[20:33:20] WARNING: C:/Users/Administrator/workspace/xgboost-win64/release1.5.1/src/learner.cc:1115: Starting in XGBoost 1.3.0, the default evaluation metric used with the objective 'multi:softmax' was changed from 'merror' to 'mlogloss'. Explicitly set eval_metric if you'd like to restore the old behavior.
[20:33:20] WARNING: C:/Users/Administrator/workspace/xgboost-win64/release1.5.1/src/learner.cc:576: 
Parameters: { "min_child_weight", "n_estimators", "rate_drop" } might not be used.

This could be a false alarm, with some parameters getting used by language bindings but
  then being mistakenly passed down to XGBoost core, or some parameter actually being used
  but getting flagged wrongly here. Please open an issue if you find any such cases.

Agradecería si pueden ayudarme a resolver esto.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el mensaje de advertencia no está relacionado con el uso de los callbacks LearningRateScheduler o LearningRateDecay. Es una advertencia sobre algunos parámetros que podrían no estar siendo utilizados en XGBoost.

    Para abordar la advertencia, puedes intentar establecer explícitamente los parámetros que están causando la advertencia a valores que tengan sentido para tu problema. Por ejemplo, puedes establecer “min_child_weight” y “n_estimators” a valores razonables según el tamaño y la complejidad de tu conjunto de datos, y establecer “rate_drop” en 0 si no estás utilizando dropout.

    Respecto al uso de los callbacks, es posible que haya un problema con la implementación de las funciones de callback. Debes asegurarte de que las funciones estén devolviendo los valores de tasa de aprendizaje correctos y que el archivo que contiene los valores de tasa de aprendizaje esté correctamente formateado.

    Además, asegúrate de tener la última versión de XGBoost y de que todas las dependencias estén instaladas correctamente. Si el problema persiste, es posible que desees considerar publicar tu pregunta en un foro relevante o contactar al equipo de soporte de XGBoost para obtener ayuda adicional.

Comments are closed.