衆所周知,r語言是統計分析最好用的語言。但在keras和tensorflow的幫助下,r語言也可以進行深度學習了。
在機器學習的語言的選擇上,r和python之間選擇一直是一個有争議的話題。但随着深度學習的爆炸性增長,越來越多的人選擇了python,因為它有一個很大的深度學習庫和架構,而r卻沒有(直到現在)。
但是我就是想使用r語言進入深度學習空間,是以我就從python領域轉入到了r領域,繼續我的深度學習的研究了。這可能看起來幾乎不可能的。但是今天這變成了可能。
随着keras在r上的推出,r與python的鬥争回到了中心。python慢慢成為了最流行的深度學習模型。但是,随着keras庫在r後端的釋出,并且在背景還可以使用張力流(tensorflow)(cpu和gpu相容性),是以在深度學習領域,r将再次與python打成平手。
下面我們将看到如何使用tensorflow在r中安裝keras,并在rstudio的經典mnist資料集上建構我們的第一個神經網絡模型。
<b>目錄:</b>
1.在後端安裝帶有張量的keras。
2.使用keras可以在r中建構不同類型的模型。
3.在r中使用mlp對mnist手寫數字進行分類。
4.将mnist結果與python中的等效代碼進行比較。
5.結束筆記。
在rstudio中安裝keras的步驟非常簡單。隻需按照以下步驟,您将很順利的在r中建立您的第一個神經網絡模型。
上述步驟将從github倉庫加載keras庫。現在是将keras加載到r并安裝tensorflow的時候了。
<code>library(keras)</code>
預設情況下,rstudio加載tensorflow的cpu版本。使用以下指令下載下傳tensorflow的cpu版本。
<code>install_tensorflow()</code>
要為單個使用者/桌面系統安裝具有gpu支援的tensorflow版本,請使用以下指令。
現在我們在rstudio中安裝了keras和tensorflow,讓我們在r中啟動和建構我們的第一個神經網絡來解決mnist資料集
<b>2.</b><b>使用keras可以在r中建構的不同類型的模型</b>
以下是使用keras可以在r中建構的模型清單。
1.多層感覺器
2.卷積神經網絡
3.循環神經網絡
4.skip-gram模型
5.使用預先訓練的模型,如vgg16,resnet等
6.微調預先訓練的模型。
讓我們開始建構一個非常簡單的mlp模型,隻需一個隐藏的層來嘗試分類手寫數字。
上述代碼的訓練精度為99.14,驗證準确率為96.89。代碼在i5處理器上運作,運作時間為13.5秒,而在titanx gpu上,驗證精度為98.44,平均運作時間為2秒。
4.mlp使用keras–r vs python<b></b>
為了比較起見,我也在python中實作了上述的mnist問題。我覺得在keras-r和python中應該沒有任何差別,因為r中的keras建立了一個conda執行個體并在其中運作keras。你可以嘗試運作一下下面等效的python代碼。
上述模型在同一gpu上實作了98.42的驗證精度。是以,我們最初猜到的結果是正确的。
<b>5.結束筆記</b><b></b>
如果這是你在r的第一個深度學習模型,我希望你喜歡它。通過一個非常簡單的代碼,您可以有98%位準确率對是否為手寫數字進行分類。這應該是足夠的動力讓你開始深度學習。
如果您已經在python中使用keras深度學習庫,那麼您将在r中找到keras庫的文法和結構與python中相似的地方。事實上,r中的keras包建立了一個conda環境,并安裝了在該環境中運作keras所需的一切。但是,讓我更為激動的是,現在看到資料科學家在r中建立現實生活中的深層次的學習模型。據說 - 競争應該永遠不會停止。我也想聽聽你對這一新發展觀點的看法。你可以在下面留言分享你的看法。
譯者:袁虎,審閱: 阿福