7.3. 并行性、资源管理和配置

7.3.1. 并行和分布式计算

Scikit-learn使用joblib库在其估计器中支持并行计算。有关控制并行计算的开关,请参阅joblib文档。

注意,在默认情况下,scikit-learn使用其嵌入式(vendored)版本的joblib。使用配置开关(下面有文档说明)控制这种行为。

7.3.2. 配置开关

7.3.2.1 Python运行

sklearn.set_config 控制以下行为:

行为描述
assume_finite用于跳过验证,这可以加快计算速度,但如果数据包含nan,则可能导致分割错误
working_memory一些算法使用的临时数组的最优大小

7.3.2.2 环境变量

在导入scikit-learn之前,应该设置这些环境变量。

环境变量描述
SKLEARN_SITE_JOBLIB当这个环境变量被设置为非零值时,scikit-learn使用site joblib,而不是它的vendored版本。因此,必须安装joblib让scikit-learn运行。注意,使用joblib网站的风险由您自己承担:scikit-learn和joblib的版本需要兼容。目前,支持joblib 0.11+。此外,joblib.Memory的dumps方法可能不兼容,您可能会丢失一些缓存,必须重新下载一些数据集。 从0.21版本开始不推荐使用:从0.21版本开始,这个参数就没有作用了,vendored joblib被移除了,而始终使用site joblib。
SKLEARN_ASSUME_FINITE设置sklearn.set_configassume_limited参数默认值
SKLEARN_WORKING_MEMORY设置sklearn.set_configworking_memory参数默认值
SKLEARN_SEED在运行测试时设置全局随机生成器的种子,以保证重现性
SKLEARN_SKIP_NETWORK_TESTS当将该环境变量设置为非零值时,将跳过需要网络访问的测试