私は dask delay を試す新しいユーザーです。関数とコードを自動的に Delayed に変換するために、delayed を使用したいと思います。ただし、delayed.compute がコレクション内の Delayed を再帰的に計算しないことがわかりました...
from dask import delayed, base
@delayed
def inc(x):
return x + 1
@delayed
def colls(ind):
return [inc(i) for i in xrange(ind)]
data2 = colls(2)
data2.compute() # I expect [1, 2], but get [Delayed('inc-...'),
Delayed('inc-...')]
それを機能させるために何か不足していましたか、それともDask.delayedがそれをサポートしていませんか?
他の遅延関数内で遅延関数を使用しないでください (非常に奇妙なことをしている場合を除く)。ただし、遅延値を他の遅延関数に渡すことができます。
あなたの特定の例では、colls を遅延なしのままにします。inc
発信する遅延コールの数をすぐに決定する必要があります。一般に、タスク グラフを構築するコードはすぐに呼び出し、機能する関数はすべて遅延させたいものです。
from dask import delayed, compute
@delayed
def inc(x):
return x + 1
def colls(ind):
return [inc(i) for i in xrange(ind)]
data2 = colls(2)
compute(data2)
# [1, 2]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加