如何加快将图像传递到 GPU 的速度

数据挖掘 机器学习 深度学习 数据科学模型 显卡
2022-02-19 03:27:52

我正在使用安装在 4TB 硬盘上的 Ubuntu 16.04 LTS。我正在处理一个大型数据集(超过 30 GB 和 150,000 张图像)。我的系统上有一个 11GB GTX 1080 Ti GPU 卡。我正在训练一个RCNNKeras. 我注意到,将包含 150,000 张图像的整个数据集从 HDD 传递到单个 GPU 至少需要几周时间才能处理一个 epoch。因此,我想加快将图像传递到 GPU 的速度。

所以我买了一个 256 GB 的 SSD,挂载它并且只将图像目录复制到 SSD。然后我开始训练Keras模型。包括 Anaconda 安装在内的所有 python 文件都在硬盘上。我注意到仅仅将图像移动到 SSD 并不能加快训练速度。有谁知道如何通过将图像从 SSD 发送到 GPU 来加快训练过程?我还需要将 python 文件和 anaconda 安装移动到 SSD 吗?我不想在 SSD 上重新安装整个操作系统。

1个回答

尝试使用批处理版本进行训练。您必须实现一个功能来管理内存中存在的数据。对于每个批次,您可以将数据尽可能多地加载到内存中,大RAM容量会有所帮助。然后您可以将批处理传递给您的网络,图形内存的大小在这里很重要,使用现在在内存中的当前数据。通过这样做,您可以减少磁盘调用的数量。当碰巧从磁盘加载数据时,你尽可能地填满内存,磁盘速度在这里很重要;因此,高速SSDs对于促进读取操作是有价值的。