本文简要介绍python语言中 sklearn.utils.parallel_backend
的用法。
用法:
sklearn.utils.parallel_backend(backend, n_jobs=- 1, inner_max_num_threads=None, **backend_params)
在 with 块中更改 Parallel 使用的默认后端。
如果
backend
是一个字符串,它必须与先前使用register_parallel_backend
函数注册的实现相匹配。默认情况下,以下后端可用:
- ‘loky’:单主机、基于进程的并行性(默认使用),
- ‘threading’:单主机、基于线程的并行性、
- ‘multiprocessing’:传统单主机、基于进程的并行性。
建议‘loky’运行操作Python对象的函数。 ‘threading’ 是一种低开销替代方案,对于释放全局解释器锁的函数来说最有效:例如对显式释放 GIL 的本机代码的几次调用中的 I/O-bound 代码或 CPU-bound 代码。
此外,如果安装了
dask
和distributed
Python 包,则可以使用 ‘dask’ 后端更好地调度嵌套并行调用,而无需过度订阅,并可能在由多个主机组成的网络集群上分发并行调用。也可以使用分布式 ‘ray’ 后端将工作负载分配到节点集群。要使用 ‘ray’ joblib 后端,请添加以下行:
>>> from ray.util.joblib import register_ray >>> register_ray() >>> with parallel_backend("ray"): ... print(Parallel()(delayed(neg)(i + 1) for i in range(5))) [-1, -2, -3, -4, -5]
或者,后端可以直接作为实例传递。
默认情况下,将使用所有可用的工作程序 (
n_jobs=-1
),除非调用者为n_jobs
参数传递显式值。这是将
backend='backend_name'
参数传递给Parallel
类构造函数的替代方法。当调用在内部使用 joblib 但不在其自己的 API 中公开后端参数的库代码时,它特别有用。>>> from operator import neg >>> with parallel_backend('threading'): ... print(Parallel()(delayed(neg)(i + 1) for i in range(5))) ... [-1, -2, -3, -4, -5]
警告:此函数是实验性的,可能会在未来版本的 joblib 中更改。
Joblib 还尝试通过限制某些第三方库线程池(如 OpenBLAS、MKL 或 OpenMP)中可用的线程数来限制超额订阅。每个工作人员的默认限制设置为
max(cpu_count() // effective_n_jobs, 1)
,但可以使用inner_max_num_threads
参数覆盖此限制,该参数将用于在子进程中设置此限制。
相关用法
- Python sklearn parametrize_with_checks用法及代码示例
- Python sklearn partial_dependence用法及代码示例
- Python sklearn pairwise_distances_chunked用法及代码示例
- Python sklearn pair_confusion_matrix用法及代码示例
- Python sklearn paired_distances用法及代码示例
- Python sklearn power_transform用法及代码示例
- Python sklearn.metrics.plot_confusion_matrix用法及代码示例
- Python sklearn.metrics.plot_roc_curve用法及代码示例
- Python sklearn plot_tree用法及代码示例
- Python sklearn permutation_importance用法及代码示例
- Python sklearn.metrics.plot_det_curve用法及代码示例
- Python sklearn precision_score用法及代码示例
- Python sklearn.inspection.plot_partial_dependence用法及代码示例
- Python sklearn precision_recall_fscore_support用法及代码示例
- Python sklearn polynomial_kernel用法及代码示例
- Python sklearn precision_recall_curve用法及代码示例
- Python sklearn jaccard_score用法及代码示例
- Python sklearn WhiteKernel用法及代码示例
- Python sklearn CalibrationDisplay.from_predictions用法及代码示例
- Python sklearn VotingRegressor用法及代码示例
- Python sklearn gen_batches用法及代码示例
- Python sklearn ExpSineSquared用法及代码示例
- Python sklearn MDS用法及代码示例
- Python sklearn adjusted_rand_score用法及代码示例
- Python sklearn MLPClassifier用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.utils.parallel_backend。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。