问题描述
我有一个长度不均匀的 numpy 数组列表。从文档中,我猜从箭头文档中,正确的数据结构是 pa.ChunkedArray
。
我希望 (1) 在一个进程中将我的 ChunkedArray
保存到磁盘,然后 (2) 启动许多能够以低内存开销从文件中读取块的新进程(pytorch 数据加载器)。
当前的解决方案
当前不使用箭头的解决方案是展平数组,保留长度/偏移量列表,将展平后的数组存储在 np.memmap
中,然后将每个进程切片到内存映射中正确的索引。
看来有了箭头,我们至少可以删除长度/偏移量列表。
我尝试过的:
将列表中的每个条目填充到固定长度,并将 pa.Table 保存到 pa.NativeFile。每个进程读取它自己的 pa.Table。这比 memmap
慢约 15%,内存效率也低。
我的问题
- 网上有没有做这种操作的例子?我找不到如何将分块数组保存到磁盘,或者在几次谷歌之后找不到 python Flight 示例。
- 认为这将比当前解决方案使用更少的内存是否不合理。
部分答案很有帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)