神经网络:gpu vs no-gpu

时间:2016-12-10 14:23:28

标签: machine-learning neural-network gpu theano keras

我需要训练一个循环神经网络作为语言模型,我决定将keras与theano后端一起使用。使用普通PC与某些显卡而不是“酷”服务器机器不能进行gpu计算是否更好? 是否存在边界(可能由NN的体系结构和训练数据的数量给出)将“cpu-learnable”问题与可以完成的问题分开(在合理的时间内)只能使用gpu?

(我可以访问我工作的公司中的旧生产服务器。它有16个内核,大约49GB的可用内存,所以我认为我已经准备好接受培训了,现在我正在阅读theano正在做的gpu优化和我我想我基本上没有它就搞砸了。)

修改

我刚刚遇到这个article,其中TomášMikolov声称他们设法在10天内训练了一个单层递归神经网络,其中只有24个CPU而没有GPU。

1 个答案:

答案 0 :(得分:1)

  

是否存在边界

将CPU与GPU分离的是内存访问。如果您经常访问神经网络中的值,CPU会做得更好,因为它可以更快地访问RAM。如果我没错,获取更新(SGD,RMSProp,Adagrad等)将需要访问这些值。

当计算量大于存储器访问时,GPU是可取的,例如,训练深度神经网络。

  

只能通过利用gpu

来完成(在合理的时间内)

不幸的是,如果你想解决这个难题,Theano将是一个糟糕的选择,因为你只能在一台机器上运行。尝试其他框架,允许跨机器运行多个CPU和GPU,例如Microsoft CNTK或Google TensorFlow。

  

以为我基本上搞砸了

差异(可能是加速或减速)不会那么大,取决于神经网络。此外,在您的机器上运行神经网络计算可能会妨碍您的工作。因此,您可能最好使用额外的服务器并使其有用。