原创 MATLAB深度學習CNN包計算次數統計

對一次前向訓練和反向傳導來說,主要計算了以下東西: 讀取6W組數據到內存中耗時:5.767000 seconds 初始化CNN耗時:0.001000 seconds 訓練60000組數據,每一組數據耗時:約0.05s 訓練一次耗時:tra

原创 關於《OPENCL異構並行計算》中工作組間同步的分析

《OPENCL異構並行計算》中講了如何利用使用同步鎖的機制對各個工作組之間進行同步,這裏對其進行簡單分析: 對應那本書6.5節最後的內核代碼,他要做一個對巨大數組進行求和的操作,這裏數組大到一個工作組無法容納數組的長度,而多次計算又浪費時

原创 關於《OPENCL異構並行計算》中矩陣乘法的分析

《OPENCL異構並行計算》中講了如何利用OPENCL進行矩陣乘法運算,並給出了使用局部存儲器優化、使用向量加載指令以及一個工作項同時計算多個輸出的例子,這裏對其進行簡單分析: 同樣,我們假設A矩陣(M×K)乘以B矩陣(K×N)得到C矩陣

原创 MATLAB深度學習CNN包的代碼詳解補充及各變量參數說明

最近在做卷積神經網絡,看了MATLAB版本的CNN包的實現,同時看了網上許多大神對此包的詳細代碼解釋,感覺醍醐灌頂,同時感覺代碼研究過程中仍有許多疑問,在這裏針對MATLAB深度學習包的卷積神經網絡包的訓練說明,分別對程序運行過程中出現的

原创 關於《OPENCL異構並行計算》中卷積優化的分析

《OPENCL異構並行計算》中講了如何利用OPENCL進行卷積運算,並給出了使用局部存儲器優化的例子,這裏對其進行簡單分析: 前面內容很容易懂,需要注意的是這裏他計算卷積核的時候並沒有提前把卷積核旋轉180度,因此旋轉操作需要自己來做。

原创 求卷積層對卷積核導數旋轉180的解釋

設卷積之前,過程如下: 則,1,2,3,4只是標號,不是數值 則有:   C1 = P1K4 + P2K3 + P4K2 + P5K1 C2 = P2K4 + P3K3 + P5K2 + P6K1 C3 = P4K4 + P5K3 +