scikitlearn经常使用joblib
与类似Parallel(n_jobs=n_jobs)(delayed(function)(param_to_function) for param_to_function in iterable)
的调用并行化。在
This helpful question and answer表示这个双括号业务意味着第二个集合被传递给涉及第一个集合的调用所返回的任何内容,如果返回的对象是可调用的,这就很有意义。在
但是这里Parallel(n_jobs=n_jobs)
返回的东西应该是Parallel
对象,对吗?然后我们传递给它一个generator
对象,这个对象由第二个括号中的循环给出。在这样的构造之后,您不应该直接将生成器传递给类。对象和输入之间应该有一些函数调用。或者在python中有没有使用这种语法的__some_special_function__
?在
这个语法到底在做什么?在
“特殊函数”可能只是一个^{} method 。使用该方法的类实例可以像函数一样被调用。在这种情况下,Parallel大概定义了
__call__
来接受生成器。在(注意,这并不是说像你的例子那样编写代码是个好主意。这是不必要的困惑。)
相关问题 更多 >
编程相关推荐