開源深度學(xué)習(xí)框架對比研究的三個主要維度學(xué)習(xí)
本節(jié)對5個開源深度學(xué)習(xí)框架進(jìn)行對比研究,主要側(cè)重于3個維度研究:硬件支持率、速度和準(zhǔn)確率、社區(qū)活躍性。他們分別是:TensorFlow、Caffe、Keras、Torch、DL4j 。
2.3.1 硬件支持率
本節(jié)研究的硬件利用率指不同開源深度學(xué)習(xí)框架對于不同CPU/GPU配置下對硬件的支持效率與通用性能表現(xiàn)。
表2.1展示了各框架對于不同硬件的通用支持性能。
2.3.2 速度和準(zhǔn)確率
本節(jié)將梯度計算時間、前饋傳播和反饋傳播時間總和度量,不對各項進(jìn)行細(xì)分。且所有試驗數(shù)據(jù)基于CPU。
模型本節(jié)選取全鏈接神經(jīng)網(wǎng)絡(luò)(Fully Connected Neural Network, FCNN)作為深度學(xué)習(xí)框架速度測試模型。FCNN被視為前饋多層感知網(wǎng)絡(luò),意味著網(wǎng)絡(luò)神經(jīng)元之間的連接是單向的,不包含環(huán)狀連接,因此容易獲得時間數(shù)據(jù)。FCNN最主要的用途在于進(jìn)行數(shù)據(jù)分類工作,因此適合對不同框架下的準(zhǔn)確率進(jìn)行對比。
數(shù)據(jù)集本節(jié)選取MNIST手寫數(shù)字圖片集作為FCNN的數(shù)據(jù)集對不同框架進(jìn)行測試。MNIST數(shù)據(jù)集由6000張訓(xùn)練圖像集和1000張測試圖像集組成,均為28X28像素的手寫數(shù)字圖片。
測試方法本節(jié)目標(biāo)在于對比測試FCNN類型的神經(jīng)網(wǎng)絡(luò)在不同框架上的收斂所耗時間以及預(yù)訓(xùn)練網(wǎng)絡(luò)在不同框架上對于分類結(jié)果預(yù)測的準(zhǔn)確性。主要考察以下方面:1.收斂速度;2.預(yù)測耗時;3.分類準(zhǔn)確性;4.源代碼規(guī)模;
為了評估模型的可擴展性,采用不同的擴展性因子來度量上述1-3點。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)采用兩種尺度進(jìn)行測試:1.使用相同的神經(jīng)元數(shù)來改變網(wǎng)絡(luò)的“深度”(見圖2.10);2.使用相同的層數(shù)來改變網(wǎng)絡(luò)的“寬度”(見圖2.11);
圖2.9 “深度”改變了的神經(jīng)網(wǎng)絡(luò)
圖2.10 “寬度”改變了的神經(jīng)網(wǎng)絡(luò)
測試結(jié)果圖2.11-圖2.14展示了FCNN基于各框架使 用Tanh非線性激活函數(shù)的情況下的訓(xùn)練時間、預(yù)測時間和分類準(zhǔn)確度。所有試驗的Epoch設(shè)定為10。
圖2.11 基于Tanh激活的FCNN在改變“深度”情況下的訓(xùn)練時間
圖2.12 基于Tanh激活的FCNN在改變“深度”情況下的預(yù)測時間
圖2.13 基于Tanh激活的FCNN在改變“深度”情況下的分類準(zhǔn)確率
類似的,圖2.14-圖2.16展示了FCNN基于各框架使用ReLU非線形激活函數(shù)的情況下的訓(xùn)練時間。
圖2.14 基于ReLU激活的FCNN在改變“深度”情況下的訓(xùn)練時間
圖2.15 基于ReLU激活的FCNN在改變“深度”情況下的預(yù)測時間