掺入GPU - 主要是NVIDIA®GPU - 是一些推动2010年代大深入学习狂热的燃料。使用大量数据(数百万或数百万个数据样本)和复杂的网络架构时,GPU可以显着加速处理时间来训练模型。在此之前,今天的许多深度学习解决方案是不可能的。金宝搏官方网站
是的,GPU很棒,但它们完全是什么?
GPU或图形处理单元最初用于图形(顾名思义)。GPU可以并行执行许多计算,使它们非常擅长处理像素操纵等大的简单任务。
与通常有四个或八个功能强大的核心的CPU不同,GPU可以具有数百个并行工作的核心。每个GPU核心都可以执行简单的计算,但本身就是不是很聪明。它的力量来自蛮力;将所有核心放在卷积,释放和汇集等深度学习计算上。
这应该是直观的意义:如果我有较小的输入大小,并要求网络执行较少的计算(使用较少的图层),那么对PPU提供的并行化和加速并没有多少机会。
我可以给您的最佳建议是看您是否可以借用GPU或注册一些基于云的GPU资源并测量培训时间的差异。无论如何,实际测量比争论比“预期的”或“预测”的好处更有说服力!
我想在这个问题中挑选出两个词:“需要”和“快速”。需要意味着必要性,这是一个问题,只有你可以回答。您是否有管理层的授权,以便在紧张的截止日期内准备好的神经网络进行生产?然后,当然!您必须有一个。无论你在没有快速GPU的情况下训练工作吗?最终!所以,它真的取决于你。
现在,你需要一个“快”的gpu?与“需要”一样,这回回了您的实际要求 - 但我们已经过去的技术性,所以让我们假设你有一些时间压力并采取这个问题,“我如何知道我需要哪个gpu?”
与计算机硬件一样,GPU会随着时间的推移而年龄,所以你想跟踪当前研究在训练模型时使用的是什么。类似于最后一个问题,结果可能会根据您对这些问题的答案而有所不同:
即使是您的笔记本电脑也有一个GPU,但这并不意味着它可以处理深度学习所需的计算。
一段时间后,我击中了自己的耐心阈值。我有一个深入的学习模式,我试图跑步,它是永远的。我看到了一位我的开发商朋友,并以为我挑选了他的大脑可能是什么问题。我们经历了网络的复杂性(基于Reset-inception),图像数量(几十万),以及类的数量(大约2000)。我们无法理解为什么培训需要超过几个小时。
然后我们到了硬件。我提到我正在使用2014年大约一个特斯拉K40,他真的开始笑。这是尴尬的。略显粗鲁。但是一旦他厌倦了硬件羞辱我,他就会给我使用他的使用。随着速度改善,在整个土地上都有和平。这个故事的寓意是,硬件进步迅速行动,并且有一个朋友分享他们的泰坦X确实是朋友。
原模(50级):12.6小时,ACC:66.7%
小型模型(8级):90分钟,ACC:83.16%
原模(50级):2.7小时,ACC:67.8%
小型模型(8级):26分钟29秒,ACC 80%
请注意:两个测试都有启用培训图,以便监控和截图目的。课程的数量不是这里的罪魁祸首;现在就是使用更少的类使用较少的输入样本。您可以影响对培训时间有形影响的部分是每个类中的数据量。
5120.
4608
2944
价格随着硬件年龄而下降,虽然我们早点笑了我的Tesla K40故事 - 它的500美元。如果你没有钱,不要愚弄最新和最伟大的。每年,GPU制造商都将继续抽出我们见过的最快GPU,这将使旧模型不太理想和昂贵。事实上,看看RTX 2080.不超过1,00美元的糟糕的小GPU。
好吧,好消息你还有选择。
首先:云资源
下一页:优化CPU
您可以运行多核CPU培训。您仍将在多个CPU内核上从低于绩效的GPU中受益,但它们比没有更好。
除此之外,您还可以切换算法。您可以从网络执行“激活”而不是培训。Gabriel HA在他的视频中使用Matlab中的神经网络的功能提取来讨论这一点。你也可以遵循一个转移学习往往比从头划伤的训练减少时间。您可以利用先前培训中学到的功能,并专注于网络中的一些稍后功能,以了解新数据集的唯一功能。
最后:借用GPU然后用CPU测试
假设你设法训练你的网络;CPU非常适合推理!与GPU相比,速度差异变得更加可管理,并且我们已经改善了CPU上这些网络的推理性能。
在一个地方找到所有列。