首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >库中的Dask循环开销

库中的Dask循环开销
EN

Stack Overflow用户
提问于 2020-07-23 15:09:17
回答 1查看 44关注 0票数 0

当调用dask的另一个库时,例如scikit图像对比度拉伸,我意识到dask正在为每个块创建一个结果,分别存储在内存中或溢出到磁盘。然后,它尝试合并所有结果。如果您在集群或单台计算机上,并且阵列的数据集很小,那么这是很好的,一切都是相当可控的。当您使用比RAM或磁盘大得多的数据集时,问题就会开始发生。有没有办法缓解这种情况,或者使用zarr文件格式来保存更新的值呢?也许这太过天马行空了。任何其他想法吧买更多的公羊将是有帮助的。

编辑

我看了关于dask的文档和关于dask的块大小的建议,大约是100MB。根据文件大小的不同,我最终将这个大小显著减少到了30-70MB。然后我运行了一个对比伸展(不是从库中,而是使用numpy unfunc,我没有任何问题!)事实上,我玩弄了计算的方式。由于我从uint8 3dim数组开始,当乘以对比度拉伸的比率时,我不可避免地将数组块增加到float64数组。这占用了大量的内存和计算。所以我一直在做的是把da.array当作np.asarray(float64),但只是在乘以一个浮点数之前。然后返回到uint8完成计算。对于一个20 to的文件,扩展时间已减少到不到5分钟。所以我认为这是积极的一步。只是意味着图像处理没有库,我会看看rechunker。

我正在构建的图像处理流水线将不可避免地用于大约250-300 my的合并数据集(绝对超出了我的笔记本电脑的限制)。我也没有时间去掌握云或云中的parralell处理。这是几个月后的事了。现在,它正在努力完成这一分析。

EN

回答 1

Stack Overflow用户

发布于 2020-07-28 23:53:28

是的,你可以做你正在谈论的那种事情。我鼓励您查看rechunker项目,该项目专门针对更改zarr存储中的数据布局,但展示了如何保存临时中介体,以减轻内存和通信问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63048743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档