diff --git a/R/R/prophet.R b/R/R/prophet.R index 74ab976..fd971a9 100644 --- a/R/R/prophet.R +++ b/R/R/prophet.R @@ -1262,6 +1262,13 @@ fit.prophet <- function(m, df, ...) { ) args <- utils::modifyList(args, list(...)) stan.fit <- do.call(rstan::optimizing, args) + if (stan.fit$return_code != 0) { + message( + 'Optimization terminated abnormally. Falling back to Newton optimizer.' + ) + args$algorithm = 'Newton' + stan.fit <- do.call(rstan::optimizing, args) + } m$params <- stan.fit$par n.iteration <- 1 } diff --git a/python/fbprophet/forecaster.py b/python/fbprophet/forecaster.py index 11fdcda..ffb93de 100644 --- a/python/fbprophet/forecaster.py +++ b/python/fbprophet/forecaster.py @@ -1119,7 +1119,9 @@ class Prophet(object): params = model.optimizing(**args) except RuntimeError: # Fall back on Newton - logger.warning('Default optimization returns with an error. Falling back to Newton method.') + logger.warning( + 'Optimization terminated abnormally. Falling back to Newton.' + ) args['algorithm'] = 'Newton' params = model.optimizing(**args)