正如問題已經提出的那樣,我對於深度學習並不陌生。我知道,沒有GPU的情況下,模型的學習過程會很慢。如果我願意等,如果我只用CPU,會不會好?爲什麼我們需要GPU進行深度學習?
回答
許多在計算深度學習(以及一般的神經網絡)中執行的操作可以並行運行,這意味着它們可以獨立計算,然後再進行彙總。這部分是因爲大部分操作都是基於矢量的。
典型的消費類CPU有4到8個內核,超線程允許它們分別被當作8或16。服務器CPU可以有4到24個內核,分別有8到48個線程。此外,大多數現代CPU具有SIMD(單指令多數據)擴展,這些擴展允許它們在單個線程上並行執行矢量操作。根據您使用的數據類型,8核CPU可以一次執行8 * 2 * 4 = 64至8 * 2 * 8 = 128個矢量計算。
Nvidia新的1080ti擁有3584個CUDA核心,這意味着它可以一次執行3584個矢量計算(超線程和SIMD不會在這裏發揮作用)。與8核心CPU相比,這一次的運算量要多56至28倍。因此,無論您是在訓練單個網絡還是多個網絡來調整元參數,它在GPU上的運行速度都可能明顯快於CPU。
取決於你在做什麼,可能需要更長的時間。我有20倍的加速使用GPU。如果你閱讀了一些計算機視覺論文,他們在ImageNet上訓練他們的網絡大約1-2周。現在想象一下,如果這花了20倍的時間...
話雖如此:有更簡單的任務。例如,對於我的HASY dataset,您可以在大概3個小時內訓練一個沒有GPU的合理網絡。類似的小數據集是MNIST,CIFAR-10,CIFAR-100。
感謝Martin,你的回答也很有幫助。你能說出一些計算機視覺文件,其中作者告訴他們訓練他們的網絡1-2周? – Kanu
VGG-net論文爲2-3周:https://arxiv.org/pdf/1409.1556.pdf –
神經網絡的計算密集部分是多個矩陣乘法。我們如何讓它更快?我們可以通過同時進行所有的操作來做到這一點,而不是一個接一個地做。簡而言之,我們使用GPU(圖形處理單元)而不是CPU(中央處理單元)。
谷歌過去有一個強大的系統,他們專門爲訓練巨大的網絡而建造。該系統耗資50億美元,擁有多個CPU集羣。 幾年之後,斯坦福大學的研究人員在計算方面建立了相同的系統,以使用GPU來訓練其深層網絡。他們把成本降到了33K美元。該系統使用GPU構建,並且具有與Google系統相同的處理能力。
來源:https://www.analyticsvidhya.com/blog/2017/05/gpus-necessary-for-deep-learning/
- 1. 機器學習,我們爲什麼需要重量數據
- 2. 爲什麼我們需要強化學習中的MDP設置
- 3. 什麼量ASP.NET,我需要學習WIF
- 4. 爲什麼NLP和機器學習社區對深度學習感興趣?
- 5. 深度學習與機器學習
- 6. 我的顯卡適合用MATLAB進行深度學習嗎?
- 7. GPU上的深度學習模式運行速度慢於CPU上運行的可能原因是什麼?
- 8. 你需要學習OpenGL什麼?
- 9. 我需要學習DataSet嗎?
- 10. 本文「深度學習需要重新思考泛化」
- 11. 用於深度學習的最佳GPU + CPU配置
- 12. 深度學習word2vec爲小文本
- 13. 水深度學習:我需要重新調整輸入數值變量
- 14. 使用AMD圖形卡在Matlab上進行深度學習
- 15. 如何使用tflearn深度學習進行文檔分類
- 16. 準備jpg圖像數據進行深度學習?
- 17. 如何通過深度學習進行分類?
- 18. 如何確定我的深度學習模型需要什麼類型的圖層?
- 19. DavLockDB:我們需要什麼?
- 20. 在開始使用Lift之前,我需要學習什麼?
- 21. windows phone開發的未來(我需要學習什麼)?
- 22. 我需要學習什麼才能製作「Push Pop Press」動畫?
- 23. 我需要離線學習iPhone開發什麼?
- 24. 我需要學習什麼語言來開發Web服務?
- 25. 爲什麼我們需要simple_one_for_one?
- 26. 爲什麼我們需要TensorFlow tf.Graph?
- 27. 爲什麼我們需要使用prompt.start()?
- 28. 爲什麼我們需要scalaz.stream迭代?
- 29. 爲什麼我們需要WCF
- 30. 爲什麼我們需要Anaconda 2.7?
,當然,這將是確定 –
這將是確定,如果你不會做卷積。 GPU在處理包含卷積圖層的圖像數據集時確實很有幫助。對於學習目的來說CPU就足夠了 –
@MihailBurduja GPU不是深度學習所必需的。他們加速了很多事情(不管你是使用卷積還是簡單的密集層),但他並沒有問及時間。 –