順序模型指南
深度學習看了不少的入門資料和學習方法,始終不得其解,感覺非常的混亂,同樣的東西可以用多種方式訓練,就算是同乙個模型,各種的優化器各種的語法甚至各種看不懂的寫法都讓我很蛋疼。
最後實在沒法選學習方向了,於是去tensorflow官網看教程,看了幾個教程,發現用了很多的keras這個東西,感覺這個框架挺好用的,簡單方便,以至於感覺非常的弱智。。。
建議在了解原理之後再使用,否則你根本不能理解自己**怎麼執行的。
我也難以理解tensorflow官網上宣傳的是別人的框架。
總的來說:keras應用型很強,tensorflow更偏向於學術研究。
keras是乙個高階神經網路api,用python編寫,能夠在tensorflow,cntk或theano之上執行。它的開發重點是實現快速實驗。能夠以最小的延遲從想法到結果是進行良好研究的關鍵。
如果您需要深度學習庫,請使用keras:
keras的核心資料結構是一種模型,一種組織層的方法。最簡單的模型型別是sequential模型,即線性層疊。對於更複雜的體系結構,您應該使用keras功能api,它允許構建任意圖層圖。
建立模型:
from keras.models import sequential
model = sequential(
)
堆疊模型結構:.add()
from keras.layers import dense
model.add(dense(units=
64, activation=
'relu'
, input_dim=
100)
)model.add(dense(units=
10, activation=
'softmax'
))
配置學習過程:
# 配置一:
# loss:損失函式
# optimizer:優化器
# metrics:指標(accuracy:精度,精確性)
model.
compile
(loss=
'categorical_crossentropy'
,optimizer=
'sgd'
,metrics=
['accuracy'])
# 配置二:
# 更靈活的配置
model.
compile
(loss=keras.losses.categorical_crossentropy, optimizer=keras.optimizers.sgd(lr=
0.01
, momentum=
0.9, nesterov=
true
))
訓練資料:
# 自動提供資料,訓練次數,每次提供資料
# x_train and y_train are numpy arrays --just like in the scikit-learn api.
model.fit(x_train, y_train, epochs=
5, batch_size=32)
# 手動、批次提供資料
model.train_on_batch(x_batch, y_batch)
模型評估:
loss_and_metrics = model.evaluate(x_test, y_test, batch_size=
128)
資料**
classes = model.predict(x_test, batch_size=
128)
pip3 install keras
安裝之前需要先配置好tensorflow環境
使用方法(免安裝,tensorflow有提供其二進位制**):
from tensorflow.keras import keras
或(建議第二種)
import tensorflow.keras
# 方法一:
from keras.models import sequential
from keras.layers import dense, activation
model = sequential(
[ dense(
32, input_shape=
(784,)
),activation(
'relu'),
dense(10)
, activation(
'softmax'),
])方法二:
model = sequential(
)model.add(dense(
32, input_dim=
784)
)model.add(activation(
'relu'
))
模型需要知道它應該期望的輸入形狀。
sequential模型中的第一層(只有第一層,因為後面的層可以進行自動形狀推斷)需要接收有關其輸入形狀的資訊。有幾種可能的方法可以做到這一點:
model = sequential(
)model.add(dense(
32, input_shape=
(784,)
))# 與上乙個相同
model = sequential(
)model.add(dense(
32, input_dim=
784)
)
在訓練模型之前,您需要配置學習過程,該過程通過該compile方法完成。它收到三個引數:
優化器(optimizer)。這可以是現有優化器(例如rmsprop或adagrad)的字串識別符號,也可以是optimizer類的例項。
損失函式(loss)。這是模型試圖最小化的目標。它可以是現有損失函式的字串識別符號(例如categorical_crossentropy或mse),也可以是目標函式。
指標(mmetrics)。對於任何分類問題,您需要將其設定為metrics=[『accuracy』]。度量可以是現有度量的字串識別符號或自定義度量函式。
# for a multi-class classification problem
model.
compile
(optimizer=
'rmsprop'
, loss=
'categorical_crossentropy'
, metrics=
['accuracy'])
# for a binary classification problem
model.
compile
(optimizer=
'rmsprop'
, loss=
'binary_crossentropy'
, metrics=
['accuracy'])
# for a mean squared error regression problem
model.
compile
(optimizer=
'rmsprop'
, loss=
'mse'
)# for custom metrics
import keras.backend as k
defmean_pred
(y_true, y_pred)
:return k.mean(y_pred)
model.
compile
(optimizer=
'rmsprop'
, loss=
'binary_crossentropy'
, metrics=
['accuracy'
, mean_pred]
)
keras模型在numpy輸入資料和標籤矩陣上進行訓練。對於訓練模型,通常使用該fit
功能。
# train the model, iterating on the data in batches of 32 samples
model.fit(data, labels, epochs=
10, batch_size=
32)
優化器、損失函式和訓練在下一節講解。 機器學習入門框架scikit learn
分類,回歸,聚類,資料降維,模型選擇和資料預處理 scikit learn分類演算法主要包括 支援向量機 svm 最近鄰,邏輯回歸,隨機森林,決策樹以及多層感知器 mlp 神經網路等等。scikit learn回歸演算法主要包括 支援向量回歸 svr 脊回歸,lasso回歸,彈性網路 elastic...
Keras深度學習框架安裝及快速入門
如果你是安裝的anaconda組合套件,可以直接在prompt上執行安裝命令 pip install keras 注意 最下面為successfully.表示安裝成功!keras為資料輸入提供了乙個很好的介面,即keras.preprocessing.image.imagedatagenerator...
Keras深度學習框架配置
專案 是在windows 7上執行的,主要用到的matlab r2013a和python,其中matlab用於patch的分割和預處理,卷積神經網路搭建用到了根植於python和theano的深度學習框架keras。keras是基於theano的乙個深度學習框架,它的設計參考了torch,用pyth...