【发布时间】:2014-02-06 15:53:48
【问题描述】:
我使用 gpu 计算编写了自己的带有反向传播的神经网络库。 想让它通用,我不必检查训练集是否适合 gpu 内存。
当训练集太大而无法放入 gpu 内存时,如何训练神经网络? 我假设它适合主机的 RAM。
我必须在第一个片段上进行训练迭代,然后在设备上释放它并将第二个片段发送到设备并对其进行训练,依此类推... 然后对梯度结果进行总结。
当我必须通过 PCIe 总线推送所有数据时,它不会太慢吗? 你有更好的主意吗?
【问题讨论】:
-
也许你可以通过查看这个关于神经网络的code 获得一个想法。
-
这是一个很好的库。我在网上搜索GPU机器学习时没有找到这个。我已经对代码进行了一些研究,但是没有一种机制可以解决内存问题。在反向传播中,他们将训练输入的
HostMatrix传递给训练算法,并且只需调整DeviceMatrix的大小并直接复制到设备。如果它没有返回cudaSuccess,那么它会创建一个空矩阵。不过谢谢
标签: machine-learning gpu neural-network gpgpu training-data