【发布时间】:2017-04-25 21:16:36
【问题描述】:
我需要将循环神经网络作为语言模型进行训练,因此我决定使用带有 theano 后端的 keras。使用带有一些显卡的普通PC而不是不能进行gpu计算的“酷”服务器机器会更好吗? 是否存在边界(可能由 NN 的架构和训练数据量给出)将“cpu-learnable”问题与可以(在合理时间内)完成的问题区分开来只使用gpu?
(我可以访问我工作的公司的旧生产服务器。它有 16 个内核,大约 49GB 的可用 RAM,所以我以为我已经准备好接受培训了,现在我正在阅读关于 gpu 优化 theano 正在做的事情,我我想我基本上没有它就搞砸了。)
编辑
我刚刚遇到了这个article,Tomáš Mikolov 说他们在 10 天内成功地训练了一个具有 1024 个状态的单层循环神经网络,同时只使用了 24 个 CPU,没有使用 GPU。
【问题讨论】:
-
我不知道有任何人在 CPU 上训练 NN。您的 CPU 可能有 16 个内核,但即使是像 GeForce GT 430 这样的破旧 GPU,也有 96 个 (CUDA) 内核。因此,GT 430(2010 年推出!)仍将比新的 2016 年英特尔至强处理器更快。 (无论如何,不要获得 GT 430,那只是我在 Google 上找到的最古老的 GPU 之一)
-
谢谢!我想这个问题可以重述为“可以在 GPU 上完成多少 NN 训练”……很高兴知道“没有人”这样做。对我来说完美的答案,虽然让我很难过:)
-
永远无法确定 96 个 CUDA 内核会胜过 16 个 CPU 内核,除非您使用您正在使用的神经网络对其进行基准测试。使用 SSE 在 CPU 上可以轻松处理 100 个节点的单隐藏层 NN。将数据传入和传出 GPU 所需的时间可能会成为此类简单网络的瓶颈。
标签: machine-learning neural-network gpu theano keras