2. 我是 MATLAB 用户,想要训练神经网络。是否需要购买快速的 GPU?
我想从这个问题中挑出两个词:“需要”和“快速”。“需要”意味着必要性,这个问题只能由您自己来回答。您是否受命于上级,需要在非常有限的时间内将某个神经网络投入生产?如果是,则答案是肯定的——当然需要!如果没有快速 GPU,您的训练能否开展?倒也未必不能。可见,这还是取决于您。
那么,您是否需要“快速”的 GPU 呢?正如上一个问题,这同样取决于您的实际需求,但我们在此忽略技术细节,只是假设您有一定的时间压力,从而将此问题转化为“我如何确定我需要什么样的 GPU?”
和一般的计算机硬件一样,GPU 也会更新换代,因此您会希望训练模型所用的 GPU 与同行当前所用的保持一致。与上一个问题类似,以下因素可能会导致结果有所不同:
您有多少数据?
有多少训练类?
是什么样的网络结构?
连笔记本电脑都有 GPU,但这并不意味着它能够应对深度学习的计算需求。
前不久,我的耐心上限遭遇挑战。我尝试运行一个深度学习模型,但速度极慢。我碰到了一位开发者朋友,觉得可以向他请教问题所在。我们逐一排查了网络的复杂度(基于 ResNet-Inception)、图像的数量(数十万)和类的个数(约 2000 类)。但我们还是不明白为什么几个小时都没法跑完训练。
随后我们把目光投向硬件。我提到我用的是 2014 年版的 Tesla K40,他毫不客气地笑出了声。太尴尬了,感觉有被冒犯到。不过,尽情嘲讽完我的硬件之后,他慷慨分享了自己的 Titan X。处理速度毫无悬念地提高了,而我们的友谊也重归于好。这个故事告诉我们,硬件发展日新月异,与你分享 Titan X 的朋友才是真朋友。
这里还有一个更为详实的案例:我的同事 Heather Gorr (@HeatherGorr) 运行了文档中的这个视频分类示例,她使用相同的数据和网络,但采用不同的硬件配置,最终的处理时间差异明显。这里详细介绍了整个过程。