我们可以在 Pytorch DataLoader 中的 worker 之间共享内存吗?

guh*_*hur 5 pytorch

我的数据集取决于 3GB 张量。这个张量可以在 CPU 或 GPU 上。我的代码的瓶颈是数据加载预处理。但是我不能在不杀死我的 RAM 的情况下添加多个工人。

这对我来说听起来很愚蠢:为什么每个工人都会收到 3GB 张量的副本,而每个工人的这个张量完全相同?

是否有任何解决方案可以让工作人员访问此张量的单个版本?

谢谢,

小智 0

雷对您来说可能是一个有趣的选择。查看光线训练数据集

此外,您还可以使用

data_id = ray.put(data)
Run Code Online (Sandbox Code Playgroud)

转储您的数据,以及

data = ray.get(data_id)
Run Code Online (Sandbox Code Playgroud)

加载相同的文件而不在函数之间复制它们。