Keras為使用Python語言開發的神經網路套件,可透過各種資料集訓練開發者建立的深度學習模型,開發者操作API較容易上手,文件說明完整且方便查閱,但其缺點為容易於程式執行階段時,常產生成GPU記憶體溢位現象,也因此造成在存取資料集時,在使用大量內存的情況,使執行速度變得緩慢。其常用內建的資料集(DataSet)包含:(本文使用MNIST資料集進行測試)
- CIFAR10:小型圖像
- IMDB:電影評論分類
- MNIST:手寫數字集
- Fashion-MNIST:時尚品項資料
- Boston:房價回歸資料
Tensorflow也是一套由Google發佈的的機器學習框架,使用python及C++語言開發而成,支援多種程式語言,業界主要用於文字、語音、圖片、影片等媒體媒體格式的辨識處理,本文就直接在R開發環境使用Tensorflow套件。
欲使用這兩個套件前,需先安裝Anaconda平台工具,本文使用適用windows版本進行安裝(建議安裝python 3.7以上版本)。安裝步驟可參考:https://docs.anaconda.com/anaconda/install/windows/
安裝完Anaconda以後,可以開啟Anaconda Prompt,輸入「conda info」,執行結果如下:
從上圖可以檢視目前Anaconda平台的環境設定,包含版本、系統參數路徑、套件安裝位置等。但重點為當Anaconda安裝時,會把Python套件也一起安裝,所以可以直接在Anaconda Prompt下執行任何Python語法,相當方便。
輸入「conda create -n 」指令,為Anaconda平台建置一個Tensorflow的運行環境,執行結果參考下圖。(tfenv為筆者自行命名的環境名稱)
執行完指令,可以觀察安裝目錄envs內的產生的檔案,如下圖。(補充:一開始筆者就是將Anaconda安裝於D:/Anaconda目錄中)
使用「tree /f」指令,觀察目錄檔案結構,tfenv目錄下會多了一些系統檔案。
接下來要安裝的是Tensorflow(參考:https://stackabuse.com/installing-tensorflow-on-windows/)
使用「activate 」指令,可以把目前(base)環境切換為指定的安裝環境,並執行「conda install tensorflow」指令,執行tensorflow的安裝,操作如下圖。
安裝完後,conda-meta資料夾內會多了很多json檔案,envs資料夾內也多了很多tensorflow套件程式。
確認本機的tensorflow是否完成安裝,用以下指令做測試。
「python」指令: 進入python的開發環境
python
「import tensorflow」指令:於開發環境中匯入tensorflow套件
import tensorflow as tf
執行完後,若僅出現「>>>」,則表示安裝成功,若有安裝有問題,則會跳出錯誤訊息。測試完後,可參考下圖方式退出python環境。
安裝Keras(參考:http://tensorflowkeras.blogspot.com/2017/08/tensorflowkeraswindows_29.html)
繼續於tfenv目錄下,使用「pip install keras」指令安裝keras
pip install keras
執行結果如下圖:
完成上述安裝後,可使用R語法檢查tensorflow及keras是否成功安裝
Sys.getenv() #檢查系統參數
library(reticulate) #若未加入此行,則無法使用py_discover_config函式
py_discover_config("tensorflow") #需載入reticulate
py_discover_config("keras") #需載入reticulate
執行結果如下圖:
若上述步驟都有確實做完,但是卻發生下圖錯誤...原因極有可能為環境參數未進行設定,請確定下圖紅框標示的參數是否存在環境變數中(在安裝Anaconda時,預設會勾選自動修正環境參數)
若無請把以下幾段資料夾路徑,加入環境參數的Path中。
D:\Anaconda
D:\Anaconda\Library\mingw-w64\bin
D:\Anaconda\Library\usr\bin
D:\Anaconda\Library\bin
D:\Anaconda\Scripts
設定完環境參數以後,關閉開發環境重新開啟(筆者使用的是Visual Studio 2017),再執行一次程式,就能夠執行成功。
使用dataset_mnist進行測試,看是否能成功使用該資料集
#install.packages("keras")
#py_install("pandas") #使用前需先於本機安裝Anaconda
#install_tensorflow()
library(reticulate)
library(tensorflow) #使用前需安裝tensorflow
library(keras) #使用前需安裝keras
mnist <- dataset_mnist() #需要安裝tensorflow,因為dataset_mnist為tensorflow的資料集
View(mnist)
執行結果:(顯示mnist資料集內容)
筆者未來會再撰寫mnist資料集的操作使用~
額外補充:
下載MNIST data指令,如下(參考:https://ithelp.ithome.com.tw/articles/10186473)
執行結果:(可觀察Extracting的部分)