為什麼在部分機器學習中訓練模型時使用GPU的效果比CPU更好?

時間 2021-05-11 03:49:51

1樓:千佛山彭于晏

哈哈哈,看完樓上的答案簡單總結一下。GPU是為渲染操作設計的,渲染的過程就是一些圖形點、幾何點位置和顏色值的計算。這些計算的形式就是一些四維向量和矩陣的運算。

而我們在訓練模型引數的時候,進行的就是這樣的計算。所以GPU很適合加速我們的訓練過程。

2樓:shulang lei

假如是3x4的陣列:

CPU:

[1 1 1 1 [1 1 1 11 1 1 1 + 1 1 1 11 1 1 1] 1 1 1 1]= < 1+1, [2,] < 1+1, [2,2,] < 1+1 ...

O(12) 算12次時脈

GPU:

[1 1 1 1 [1 1 1 11 1 1 1 + 1 1 1 11 1 1 1] 1 1 1 1][1+1, 1+1, 1+1, 1+1

= 1+1, 1+1, 1+1, 1+11+1, 1+1, 1+1, 1+1]

O(1) 算一次時脈

神經網路是這個樣子的:

當然,這東西可以寫成乙個及其龐大的陣列的陣列:

訓練時每個樣本資料都要做一次backpropagation(多數都是乘法和加法)。現在的所謂大資料動不動就是幾萬以上的訓練資料,每個資料幾千位元,那麼每個神經元就是乙個幾萬x幾千的陣列,然後起碼要50個神經元以上回歸出來的假設準確率才夠看。如果用CPU算,哈哈,還不如招個統計學專業的拿筆來找規律...

3樓:

我想先糾正一下題主的措辭,並不是「效果好」,而是「速度快」。計算就是計算,數學上都是一樣的,1+1用什麼算都是2,CPU算神經網路也是可以的,算出來的神經網路放到實際應用中效果也很好,只不過速度會很慢罷了。

至於題主的問題,恐怕要從GPU的起源講起了。。

GPU全稱叫做graphics processing unit,圖形處理器,顧名思義就是處理圖形的。電腦顯示器上顯示的影象,在顯示在顯示器上之前,要經過一些列處理,這個過程有個專有的名詞叫「渲染"。以前的計算機上沒有GPU,渲染就是CPU負責的。

渲染是個什麼操作呢,其實就是做了一系列圖形的計算,但這些計算往往非常耗時,占用了CPU的一大部分時間。而CPU還要處理計算機器許多其他任務。因此就專門針對圖形處理的這些操作設計了一種處理器,也就是GPU。

這樣CPU就可以從繁重的圖形計算中解脫出來。

由於GPU是專門為了渲染設計的,那麼他也就只能做渲染的那些事情。渲染這個過程具體來說就是幾何點位置和顏色的計算,這兩者的計算在數學上都是用四維向量和變換矩陣的乘法,因此GPU也就被設計為專門適合做類似運算的專用處理器了。為什麼說專用呢,因為很多事情他做不了。

CPU通用性強,但是專用領域效能低。工程就是折衷,這項強了,別的就弱了。

再後來遊戲、3D設計對渲染的要求越來越高,GPU的效能越做越強。論純理論計算效能,要比CPU高出幾十上百倍。人們就想了,既然GPU這麼強,那用GPU做計算是不是相比CPU速度能大大提公升呢?

於是就有了GPGPU(general purpose GPU,通用計算GPU)這個概念。但我們前面提到了,GPU是專門為了影象渲染設計的,他只適用於那些操作。但幸運的是有些操作和GPU本職能做的那些東西非常像,那就可以通過GPU提高速度。

比如深度學習。

深度學習中一類成功應用的技術叫做卷積神經網路CNN,我想也就是題主提到的模型,這種網路數學上就是許多卷積運算和矩陣運算的組合,而卷積運算通過一定的數學手段也可以通過矩陣運算完成。這些操作和GPU本來能做的那些圖形點的矩陣運算是一樣的。因此深度學習就可以非常恰當地用GPU進行加速了。

以前GPGPU概念不是很火熱,GPU設計出來就是為了圖形渲染。想要利用GPU輔助計算,就要完全遵循GPU的硬體架構。而現在GPGPU越來越流行,廠家在設計和生產GPU的時候也會照顧到計算領域的需求了。

比如今年英偉達發布M40和P100的時候,都在說」針對深度學習設計「,當然其實這裡面炒概念的成分更大了,但至少可以看出廠家越來越多地看重通用GPU計算了。

* 部分內容是根據自己的理解寫出來的,不保證完全正確。

4樓:

GPU多達上千核,可以大規模平行計算。而CPU一般核多用處不大,程式很大部分無法實現並行(普遍的)。GPU來求解優化等等數值計算效率相當觀。

5樓:李大蝦

GPU為圖形影象專門設計,在矩陣運算,數值計算方面具有獨特優勢,特別是浮點和平行計算上能優於CPU的數十數百倍的效能。

還有個更重要的是,GPU相對CPU幹事少,高尖堅啊,沒什麼打擾,自然效率高了。

在機器學習裡,經常聽到訓練模型,模型到底是個什麼東西呢,有沒有大佬給個通俗一點的解答??

劉dl 輸入 X,張量 Y,實際標籤 模型 y pred f X,W 訓練模型是指 迭代擬合出乙個W,使得y pred很接近Y 付鵬 簡單說,模型是公式的引數。機器學習模型,就是按照指定的公式算數。假設我們有如下的邏輯回歸模型 式中,是輸入,是要學習的引數,那麼 三個數字就組成了模型,對於新的資料,...

你在訓練機器學習模型的時候,有哪些關於 training dynamics 的經驗?

星衡科技 實用策略 warm up 余弦退火 warm up 訓練初期由於離目標較遠,一般需要選擇大的學習率,但是使用過大的學習率容易導致不穩定性。所以可以做乙個學習率熱身階段,在開始的時候先使用乙個較小的學習率,然後當訓練過程穩定的時候再把學習率調回去。比如說在熱身階段,將學習率從0調到初始學習率...

機器學習中的模型到底是指什麼?

林高遠 舉乙個最簡化的例子 樣本集 A 類 1,3,4,5 樣本集 B 類 7,8,9 分類目標 大於 x 為 A類 小於 x 類為 B類 具體 x 可以等於任意實數,但不一定都能達成 100 正確分類目標。x 0,無法正確分類 x 10,無法正確分類 x 8,部分正確分類 x 4.5,部分正確分類...