【发布时间】:2016-03-28 18:08:57
【问题描述】:
我正在尝试在 Theano 中编写一个大型深度神经网络(用于图像识别的几个大型卷积层)。整个网络不适合 GPU,因此我需要以某种方式划分网络。我的问题是:
有人知道在哪里可以找到解决此问题的教程或示例代码吗? “小型网络”有很多很好的教程和代码,但我找不到大型网络的任何东西。
这不是一个小问题,在训练时减少图像的batch或者减少层的数量或大小都不是解决方案。
如果有任何关于如何设计网络或管理 GPU 的想法,我将不胜感激。
非常感谢。
【问题讨论】:
-
单独的网络参数是否适合 GPU 内存?
-
不,他们没有。这就是问题所在,网络上有很多。
-
据我所知,theano 不支持跨多个 GPU 划分网络。有一些关于解决这个问题的讨论,但它不是直截了当的,可能不会很快发生,请查看 theano 邮件列表。在 beta 中有一个 PR 可以使用 float16,这可能会为您节省一些空间:github.com/Theano/Theano/issues/2908 否则,如果您绝对需要比硬件更大的网络(Titan X 为 12 gb ......)请查看 torch7 的 nn 和 dp 包,即 covnets “不要太奇葩”应该很容易配置,而且我相信可以设置为多 GPU 处理。
标签: memory-management neural-network gpu theano large-data