2017-12-21 33 views
0

Scikit-learn은 Parallel(n_jobs=n_jobs)(delayed(function)(param_to_function) for param_to_function in iterable)과 같은 호출로 병렬 처리하기 위해 종종 joblib을 사용합니다.이 joblib이란 무엇입니까? 너무 많은 괄호

This helpful question and answer이 이중 괄호 비즈니스는 첫 번째 집합과 관련된 호출에서 두 번째 집합이 전달된다는 것을 나타내며 반환되는 것이 호출 가능하면 많은 의미가 있습니다.

여기에 Parallel(n_jobs=n_jobs)이 반환하는 것은 Parallel 개체 여야합니다. 맞습니까? 그리고 두 번째 괄호 안에 루프에 의해 주어진 객체 generator을 전달합니다. 그런 구조를 만든 후에는 발전기를 직접 클래스에 전달할 수 없어야합니다. 객체와 입력 사이에 일부 함수 호출이 있어야합니다. 또는 파이썬에서이 구문과 함께 작동하는 __some_special_function__이 있습니까?

이 구문은 정확히 무엇을 수행합니까?

답변

1

"특수 기능"은 아마도 단지 __call__ method 일 것입니다. 이 메서드를 사용하는 클래스의 인스턴스는 함수처럼 호출 할 수 있습니다. 이 경우, Parallel은 아마도 발전기를 받아 들일 수 있도록 __call__을 정의합니다.

(예제와 같이 코드를 작성하는 것이 좋으며, 불필요하게 혼란 스럽습니다.)