gpu的合并——主要是NVIDIA®gpu是2010年代深度学习热潮的动力之一。当处理大量数据(成千上万的数据样本)和复杂的网络架构时,gpu可以显著加快模型训练的处理时间.在此之前,今天的许多深度学习解决方案都是不可能的。金宝搏官方网站
是的,gpu很棒,但它们到底是什么?
图形处理器(gpu)或图形处理单元,最初用于图形(顾名思义)。gpu可以并行执行许多计算,使它们非常擅长处理大型简单任务,如像素操作。
cpu通常有4或8个强大的核心,而gpu可以有数百个更小的核心并行工作。每个GPU核心都可以执行简单的计算,但它本身并不是很智能。它的力量来自蛮力;将所有这些核心用于深度学习计算,如卷积、ReLU和池化。
这应该是很直观的:如果我有一个较小的输入尺寸,并要求网络执行更少的计算(使用更少的层),那么GPU提供的并行化和加速机会就没有那么多。
我能给你的最好建议是,看看你是否可以借用GPU或注册一些基于云计算的GPU资源,并衡量训练时间的差异。无论如何,实际测量可能比“预期”或“预计”的好处更有说服力!
在这个问题中,我想挑出两个词:“需要”和“快速”。需要意味着需要,这个问题只有你能回答。你是否得到管理层的授权,让你准备好一个神经网络,以便在紧迫的期限内投入生产?然后,当然!你需要一个。如果没有快速的GPU,你训练的东西还能工作吗?最终!所以,这完全取决于你。
现在,你需要一个“快速”的GPU吗?和“需求”一样,这又回到了你的实际需求——但是我们已经超越了技术细节,所以让我们假设你有一些时间压力,“我怎么知道我需要哪个GPU ?”
就像一般的计算机硬件一样,gpu也会随着时间的推移而老化,所以你需要跟踪当前的研究在训练模型时使用的是什么。与上一个问题类似,结果可能会根据你对以下问题的回答而有所不同:
即使你的笔记本电脑也有GPU,但这并不意味着它可以处理深度学习所需的计算。
前段时间,我的耐心也达到了极限。我想要运行一个深度学习模型,但它花了我很长时间。我看到我的一个开发人员朋友,我想问问他的问题是什么。我们讨论了网络的复杂性(基于ResNet-Inception)、图像的数量(几十万)和类的数量(大约2000)。我们不明白为什么训练要花几个小时以上。
然后我们谈到硬件。我提到我在2014年左右用特斯拉K40,他真的开始笑了。这是尴尬的。和有点粗鲁。但当他厌倦了用硬件羞辱我时,他让我用他的。速度的提高随之而来,整个国家一片和平。这个故事告诉我们,硬件的发展速度非常快,能够分享Titan 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
随着硬件的老化,价格会下降,所以尽管我们之前对我的特斯拉K40的故事笑了,它的价格是500美元。如果你没有钱,不要被最新的和最好的愚弄。每一年,GPU制造商都将继续生产出我们所见过的最快的GPU,这将使老型号不那么受欢迎和昂贵。事实上,看看RTX 2080。一个不错的GPU,不到1000美元。
好消息是你还有其他选择。
首先:云资源
接下来:针对cpu进行优化
您可以运行多核CPU训练。在多个CPU核上使用低性能的GPU仍然会让你受益,但总比没有好。
除此之外,您还可以切换算法。你可以从网络执行“激活”,而不是训练。Gabriel Ha在他关于在MATLAB中使用神经网络进行特征提取的视频中谈到了这一点。你也可以跟着an迁移学习比从头开始训练花费的时间要少。您可以利用在之前的训练中学习的特性,并关注网络中的一些较晚的特性,以理解新数据集的独特特性。
最后:借一个GPU,然后用CPU测试
假设你已经成功训练了你的人际网络;cpu在推理方面工作得非常好!与gpu相比,速度差异变得更易于管理,我们还改进了这些网络在cpu上的推理性能。
在一个地方找到所有的列。