首页 > 解决方案 > 停止打印 INFO:cmdstanpy:start chain 1, INFO:cmdstanpy:finish chain 1

问题描述

我正在使用 cmdstanpy 而不是 pystan 运行 FBProphet。出于我的目的,我必须在 jupyter notebook 中多次运行训练和预测,这会导致不断打印:

INFO:cmdstanpy:start chain 1
INFO:cmdstanpy:finish chain 1

当我必须为超过 10000 个模型运行此问题(我在更新训练集后分别预测每天的值)并打印 20000 行时,就会出现问题。这使得笔记本非常慢。有什么办法可以阻止 FBProphet frmo 打印这两行?

我尝试过的事情:

  1. Verbose False 给出一个错误:
TypeError                                 Traceback (most recent call last)
<ipython-input-126-586e1241babb> in <module>
     17             model = Prophet(uncertainty_samples=True, weekly_seasonality = True, 
     18                             yearly_seasonality= True, changepoint_prior_scale = 0.5,
---> 19                             daily_seasonality=False, verbose = False)
     20             model.add_seasonality(name='monthly', period=30.5, fourier_order=2)
TypeError: __init__() got an unexpected keyword argument 'verbose'
  1. 如何控制 fbprophet 的输出? 这不会抑制输出。

请指教。

标签: pythonfacebook-prophet

解决方案


日志记录级别可以通过 CmdStanModel 对象创建时的 logger 选项来控制:

import logging
logger = logging.getLogger('simple_example')
logger.setLevel(logging.WARNING)

CmdStanModel(stan_file=your_path,logger=logger)

有关更多选项,请参阅https://docs.python.org/3/howto/logging.html#logging-levels。以上只是创建了一个自定义记录器,以便仅打印警告级别的消息,而不是 CmdStanPy 实用程序中定义的默认信息级别(https://cmdstanpy.readthedocs.io/en/v0.9.67/_modules/ cmdstanpy/utils.html )


推荐阅读