我想采用一个现有的函数(例如scikit-learn:特别是“predict”函数),并将多个核应用于某个数据集。
我的第一个天真的方法:
def parallel_predict(classifier):
@dview.parallel(block=True)
def predict( matrix ):
return classifier.predict(matrix)
return predict
不起作用(多个核心不会开始旋转)。有没有办法使这项工作?
或者某种方式将“不可迭代”的函数传递给@dview.parallel
函数?
答案 0 :(得分:0)
一些想法,都基于remote execution doc。我已经习惯了@remote
装饰师,而不是你曾经使用的@parallel
装饰师,但希望它们仍适用于你的情况。 (由于某种原因,今天似乎无法加载that doc。
远程执行是否无法正常工作,因为引擎无法访问classifier
模块?如果是这样,可以通过使用import
(根据this example)或添加with dview.import_sync(): import classifier
装饰器(来自@require('classifier'):
)明确地向装饰函数添加x = e0.execute('1/0')
print x.metadata['error']
x = predict
print x.metadata['error']
语句来解决此问题。同一部分的文档)。至于最后一个选项,不确定多个装饰器如何相互作用(可能最容易让它变成一个重击)。
第二个想法是你可以检查远程异常(here's the doc on that)。这比没有得到任何回报要明确得多。例如,像:
<activity android:theme="@android:style/Theme.Dialog">
<activity android:theme="@style/CustomTheme">