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_config 的assume_limited 参数默认值 |
SKLEARN_WORKING_MEMORY | 设置sklearn.set_config 的working_memory 参数默认值 |
SKLEARN_SEED | 在运行测试时设置全局随机生成器的种子,以保证重现性 |
SKLEARN_SKIP_NETWORK_TESTS | 当将该环境变量设置为非零值时,将跳过需要网络访问的测试 |