Arthur
Arthur
Sep 11 · 3 min read

Keras基本指令

最近在練習深度學習,在這邊紀錄一下如何使用Keras建立網路以及輸入特徵與標註資料,以及一些基礎的深度學習資料。

1.環境的部分

在環境部分,我現在是在Win10系統上用CPU版本,目前是參考這篇建立tensorflow,以及這篇建立keras的環境。

2.網路的建立

from keras.models import Sequential
from keras.layers import Dense


# create model
model = Sequential()
#input
model.add(Dense(units:13, input_dim=13, kernel_initializer='normal', activation='relu'))
model.add(Dense(units:2, kernel_initializer='normal' ,activation='relu'))
model.add(Dense(units:2, kernel_initializer='normal'))

# Compile model
model.compile(loss='mean_squared_error', optimizer='adam',verbose=1)
  • model.add:增加一層網路
  • Dense:Fully-connect層
  • units:當層有多少節點(neruals)
  • input_dim:輸入的維度
  • kernel_initializer:權重(weight)初始化的方式
  • activation:激活函數設定
  • model.comile:執行編譯這個網路
  • loss:損失函數的定義(可以自己定義需要的loss function)
  • otimizer:能加快訓練的方法,常見的還有sgd
  • verbose:能看到每次訓練的結果
model.fit(x, y, validation_data=(x_test, y_test),epochs=30,batch_size=100)
  • (x,y):訓練用的特徵資料與其標註(label)資料
  • (x_test,y_test):valid資料,主要功能是用來檢測資料是否Overfit, 也可以直接用validation_split = 0.1切出1/10的訓練資料來使用
  • epochs:迭代次數
  • batch_size:更新一次權重使用的資料量

3.分類(Classification)

使用網路預測結果是哪一類會使用分類(Classification),舉例來說,今天有張圖片上面是數字,要分辨圖片上面的是(0-9)使用就屬於分類。如果要預測一個機率,像是預測明天下雨的機率用的就是回歸分析(Regression)

這邊特別提到分類是因為在使用分類時要將y值(標註的資料)轉換成One Hot,程式碼如下

from keras.utils import np_utilsy = np_utils.to_categorical (y)

結論:

Keras內建了需多常見的功能,能大幅縮短了我們實現深度學習所需要的時間,小弟我也是剛接觸深度學習不久,如果以上有誤請肯指點。接下來會繼續邊學習深度學習理論,邊實做一些有趣的程式。

Arthur_Chien

看看書 煮點美食 分享程式

Arthur

Written by

Arthur

Cooking, Coding and Reading

Arthur_Chien

看看書 煮點美食 分享程式

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade