2017-12-21 14 views
0

Scikit-learnは、のような呼び出しと並列化するために、しばしばjoblibを使用します。このジョブライブラリとは何ですか?並列構文は何をしていますか?非常に多くのかっこ

This helpful question and answerこの二重括弧ビジネスは、最初のセットを含む呼び出しによって返されるものに2番目のセットが渡されることを示しています。これは、返されたものが呼び出し可能である場合には非常に意味があります。

ここでParallel(n_jobs=n_jobs)が返すものはParallelオブジェクトである必要があります。そして、ループで指定されたオブジェクトgeneratorを2番目のかっこ内に渡しています。そのような工事の後、ジェネレータをクラスに直接渡すことはできません。オブジェクトと入力の間に関数呼び出しがあるはずです。または、このシンタックスで動作するPythonに__some_special_function__がありますか?

この構文は正確に何をしていますか?

答えて

1

「特別機能」はたぶん__call__ methodです。そのメソッドを持つクラスのインスタンスは、関数のように呼び出すことができます。この場合、Parallelはおそらく発電機を受け入れるために__call__を定義します。

(例のようにコードを書くのはいいとは言いませんが、それは不必要に混乱します)

関連する問題