中间值的 Dask SVD 计算和重用
Dask SVD Computation and Reuse of Intermediate Values
我在 Dask 数组中有一个巨大的、数 GB 的矩阵。如果我执行以下操作:
usv = dask.array.linalg.svd(A)
其次是
u.compute()
s.compute()
v.compute()
我能否确保 Dask 将重用进程的中间值,或者是否会为 u、s 和 v 重新运行整个过程?
您编写它的方式不会重用任何中间值(除非,也许,您正在使用 distributed scheduler)。
无论哪种方式,您都需要重写
from dask import compute
u, s, v = compute(u, s, v)
在这种情况下,将共享所有中间值。
有关更多信息,请参阅 http://dask.pydata.org/en/latest/scheduler-overview.html#the-compute-function。
我在 Dask 数组中有一个巨大的、数 GB 的矩阵。如果我执行以下操作:
usv = dask.array.linalg.svd(A)
其次是
u.compute()
s.compute()
v.compute()
我能否确保 Dask 将重用进程的中间值,或者是否会为 u、s 和 v 重新运行整个过程?
您编写它的方式不会重用任何中间值(除非,也许,您正在使用 distributed scheduler)。
无论哪种方式,您都需要重写
from dask import compute
u, s, v = compute(u, s, v)
在这种情况下,将共享所有中间值。
有关更多信息,请参阅 http://dask.pydata.org/en/latest/scheduler-overview.html#the-compute-function。