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.

Profeta: desactivar u ocultar la salida del registro detallado del registrador

Utilizando la función de validación cruzada ~~facebook~~ meta prophet, obtengo mucho de esto:

ADVERTENCIA: prophet.models: La optimización terminó de forma anormal. Se está utilizando el método de Newton por defecto.

Puedo desactivar la salida de stan utilizando esto, pero no puedo deshacerme de estos molestos registros. Tal vez me resultarían útiles si estuviera ejecutando esto de forma interactiva, pero no lo estoy haciendo.

Ya estoy realizando esto cerca del comienzo de mi script:

import logging
logging.getLogger(‘fbprophet’).setLevel(logging.ERROR)

No ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás tratando de deshacerte del mensaje de advertencia “Optimization terminated abnormally. Falling back to Newton” generado por la función de validación cruzada en Facebook-Prophet. Aunque ya has intentado establecer el nivel de registro de fbprophet en ERROR, parece que no ha funcionado como se esperaba.

    Una posible solución para silenciar estos mensajes de advertencia es redirigir la salida de la función de validación cruzada a devnull. Puedes hacer esto agregando las siguientes líneas de código antes de llamar a la función cross_validation:

    import os
    import sys
    
    # Redirige stdout y stderr a /dev/null para silenciar la salida
    old_stdout = sys.stdout
    old_stderr = sys.stderr
    sys.stdout = open(os.devnull, 'w')
    sys.stderr = open(os.devnull, 'w')
    

    Y después de llamar a la función cross_validation, puedes restaurar el stdout y stderr originales de esta manera:

    # Restaura stdout y stderr
    sys.stdout = old_stdout
    sys.stderr = old_stderr
    

    Esto redirigirá toda la salida generada por la función de validación cruzada a /dev/null, que es básicamente un agujero negro donde se descarta toda la salida. Esto debería ayudar a suprimir los mensajes de advertencia que estás viendo.

    Una solución alternativa es cambiar al backend StanBackendEnum.PYSTAN en lugar del backend predeterminado StanBackendEnum.STAN. Esto se puede lograr estableciendo el parámetro backend del objeto Prophet en StanBackendEnum.PYSTAN. El backend PYSTAN utiliza la biblioteca pystan en lugar del compilador cmdstan para compilar y ejecutar los modelos Stan, lo cual puede ayudar a evitar algunos de los mensajes de advertencia que puede generar el compilador. Sin embargo, esto también puede requerir que instales por separado el paquete pystan si aún no está instalado en tu sistema.

Comments are closed.