我有一个图像处理图,我想批量处理许多图像。我的图表如下所示:
这会导致我的计算机内存不足并崩溃,因为加载映像的输出是兆字节的图像。我希望图形像这样运行,因为保存结果的结果非常小,应该没问题:
我怎么能用dask做到这一点?
Customizing Optimization似乎在我可能融合中间节点的地方会很有用。这是最好的方法吗?
Dask更喜欢执行可以释放内存的任务,这在你的例子中应该是深度的。但是,它也为你提供了并行性;所以最简单的方法就是拥有一名工人。
实际上,图中的线性链将成为保险丝的良好案例。您可以自己调用优化(dask.optimization.inline_functions
,dask.optimization.fuse
,不需要自定义),或者您可以编写一个函数,在单个任务(save(process(load(..)))
)中依次显式调用每个子任务。