深度學習入門 框架keras 1簡介

2021-09-05 11:31:23 字數 4413 閱讀 1507

順序模型指南

深度學習看了不少的入門資料和學習方法,始終不得其解,感覺非常的混亂,同樣的東西可以用多種方式訓練,就算是同乙個模型,各種的優化器各種的語法甚至各種看不懂的寫法都讓我很蛋疼。

最後實在沒法選學習方向了,於是去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...