1. 程式人生 > >畢業設計(一)— R語言入門及Keras入門

畢業設計(一)— R語言入門及Keras入門

前言

開始做畢設了,從零入門深度學習,打算把這個過程記錄下來,初級小白,筆記可能很囉嗦也可能有錯誤,如果有小夥伴看到,歡迎大家指正指導,有什麼學習的網站或者書籍,也可以一起交流^_ ^

前置資訊:我是mac系統,使用預設python2.7

1.mac下安裝R語言環境

登陸[官網](https://www.r-project.org),找到左側Download下方CRAN,CRAN是用於安裝R的一個下載庫。

進入CRAN,這是R的一個國際化開發團隊,下拉網頁,找到China的下載映象:
在這裡插入圖片描述

選擇離自己地理位置最近的映象檔案連結,點進去再選擇系統和相應安裝包。
在這裡插入圖片描述
之後一路next安裝,完成後命令列試一下:
在這裡插入圖片描述

2.R語言基礎

w3cschhool:R語言教程

程式碼風格:
  • 副檔名名:用大寫字母 R。
  • 命名規則:在任何時候都不要使用短橫或者下劃線。具體的詳細格式應當有:
    • 變數名:全小寫,並使用句點分隔(avg.clicks);或者不用句點而改用大寫字母分隔(avgClicks)。
    • 函式名:首字母大寫,使用大寫字母分隔(CalculateAvgClicks )。不使用句點。
    • 常量:命名類似函式,但是以小寫字母 k 開頭(kConstantName)。
  • 行寬:最多80字元
  • 縮排:兩個空格而不是製表符。
  • 空格:
    • 在二元操作符(包括關係符和運算子,如 <- = + 等)的兩側加空格,除非它在函式呼叫語句中。
    • 逗號的右側空格。
    • 左圓括號的左側空格,除非它在函式呼叫語句中。
    • 單語句斷行時,對齊賦值符號而新增額外空格是允許的。
  • 花括號:左花括號不單獨一行,右花括號總是單獨一行。如果有連續的花括號,這樣書寫:
if (condition) {
    one or more lines
  } else {
    one or more lines
  }
  • 賦值符:使用 <- 而不使用 =。

3.RStudio安裝

rstudio是R語言的IDE,做得非常好,就是rstudio為Keras提供了R語言介面。

RStudio的下載路徑:https://www.rstudio.com/products/rstudio/download/

下載free版就行,下載下來是RStudio-1.0.153.dmg檔案。直接拖進Application就可以了。

  • 開啟RStudio,新建工程:File -> New Project -> New Directory -> Empty Project(注意這種工程路徑儘量也不要出現中文)
  • 新建指令碼:File -> New File -> R Script
  • 在RStudio裡寫程式碼
  • 選中要執行的程式碼,Code -> Run Selected Line(s)便可輸出執行結果如下圖所示。
    在這裡插入圖片描述

3.安裝Keras包

應該先檢查一下有沒有安裝pip和virtualenv,有的話就不會有我以下的錯誤了。我這裡完全記錄一下我的過程,包括報錯和解決。

1). R環境下執行命令:install.packages("keras"),映象選了19(shanghai)
報錯:

Warning message:
In doTryCatch(return(expr), name, parentenv, handler) :
  無法載入共享目標物件‘/Library/Frameworks/R.framework/Resources/modules//R_X11.so’::
  dlopen(/Library/Frameworks/R.framework/Resources/modules//R_X11.so, 6): Library not loaded: /opt/X11/lib/libSM.6.dylib
  Referenced from: /Library/Frameworks/R.framework/Resources/modules//R_X11.so
  Reason: image not found

沒處理,繼續執行
2). library(keras)
3). install_keras()
報錯:

Prerequisites for installing TensorFlow not available.

Execute the following at a terminal to install the prerequisites:

$ sudo /usr/bin/easy_install pip
$ sudo /usr/local/bin/pip install --upgrade virtualenv

4). 退出R環境執行:sudo /usr/bin/easy_install pip
報錯:

error: Could not find suitable distribution for Requirement.parse('pip')

5). 解決4) 這個錯誤:

curl 'https://bootstrap.pypa.io/get-pip.py' > get-pip.p
sudo python get-pip.py

6). OK,繼續3). 執行那兩個命令:

$ sudo /usr/bin/easy_install pip
$ sudo /usr/local/bin/pip install --upgrade virtualenv

在這裡插入圖片描述
OK~
7). 再進入R環境,執行:

library(keras)
install_keras()

載入了好多好多進度條,終於:
在這裡插入圖片描述

補充:pip相關

你可以通過以下命令來判斷是否已安裝:

pip --version

如果你還未安裝,則可以使用以下方法來安裝:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下載安裝指令碼
$ sudo python get-pip.py # 執行安裝指令碼

注意:用哪個版本的 Python 執行安裝指令碼,pip 就被關聯到哪個版本,如果是 Python3 則執行以下命令:

$ sudo python3 get-pip.py # 執行安裝指令碼。

一般情況 pip 對應的是 Python 2.7,pip3 對應的是 Python 3.x。

pip 最常用命令:

pip --version #顯示版本和路徑
pip --help #獲取幫助
pip install -U pip #升級 pip
#如果這個升級命令出現問題 ,可以使用以下命令:
sudo easy_install --upgrade pip

5.入門Demo-數字識別

MNIST算例 :MNIST是非常著名的一個手寫數字算例資料集,然後這個Demo,我們就是要運用深度學習方法來識別手寫數字。

1)匯入資料

library(keras)
mnist <- dataset_mnist()
x_train <- mnist$train$ x
y_train <- mnist$train$y
x_test <- mnist$test$x
y_test <- mnist$test$y

2)調整資料結構

#reshape
x_train <- array_reshape(x_train, c(nrow(x_train), 784))
x_test <- array_reshape(x_test, c(nrow(x_test), 784))
#rescale
x_train <- x_train / 255
x_test <- x_test / 255
y_train <- to_categorical(y_train, 10)
y_test <- to_categorical(y_test, 10)

3)定義模型

model <- keras_model_sequential()
model %>%
layer_dense(units = 256, activation = ‘relu’, input_shape = c(784)) %>%
layer_dropout(rate = 0.4) %>%
layer_dense(units = 128, activation = ‘relu’) %>%
layer_dropout(rate = 0.3) %>%
layer_dense(units = 10, activation = ‘softmax’)

4)設定優化項

model %>% compile(
loss = ‘categorical_crossentropy’,
optimizer = optimizer_rmsprop(),
metrics = c(‘accuracy’)
)

這裡定義了損失、優化和度量方式。
5)執行

history <- model %>% fit(
x_train, y_train,
epochs = 30, batch_size = 128,
validation_split = 0.2
)

plot(history)

在這裡插入圖片描述

6)測試資料評估模型

model %>% evaluate(x_test, y_test)

在這裡插入圖片描述

必備學習資料:

官方文件
Keras 中文文件
Deep Learning with R

本文參考:
Mac版R語言入門(一)R語言入門操作
R語言(入門及風格指導)
mac上安裝R和RStudio
Python pip 安裝與使用
R語言深度學習——他山之石(Keras來了)