本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。