如何关闭Python随机森林并行计算的状态输出并清理冗余日志?
如何关闭随机森林并行计算的状态输出
嘿,这个问题我之前调模型的时候也碰到过,那些[Parallel(n_jobs=6)]的输出确实有点干扰控制台的整洁度,其实有几个简单的办法可以解决:
方法一:全局禁用所有joblib并行输出
这些状态信息来自joblib库(sklearn的并行计算底层依赖它),我们可以全局设置joblib的日志级别来屏蔽所有这类输出,在代码开头加上:
import joblib joblib.set_config(verbose=0)
这样所有使用joblib的并行操作(包括随机森林、梯度提升树等)都不会再输出进度状态了,属于一劳永逸的方案。
方法二:针对单个随机森林模型关闭输出
如果你只想让当前的随机森林模型不输出,而保留其他并行操作的日志,那可以在初始化模型的时候设置verbose=0参数:
from sklearn.ensemble import RandomForestClassifier # 随机森林回归器RandomForestRegressor用法一致 rf_model = RandomForestClassifier(n_jobs=-1, verbose=0) rf_model.fit(X_train, y_train)
这个方法只对当前创建的模型生效,其他模型如果没设置verbose=0还是会输出状态信息。
补充说明
默认情况下,当n_jobs>1时,joblib会输出并行任务的进度日志,把verbose参数设为0就会屏蔽所有这类非必要的状态提示,让你的控制台输出更清爽。
内容的提问来源于stack exchange,提问作者HME
相关产品推荐
相关产品推荐

