Keras 提供了一個(gè)完整的框架來(lái)創(chuàng)建任何類型的神經(jīng)網(wǎng)絡(luò)。Keras 具有創(chuàng)新性,而且非常容易學(xué)習(xí)。它支持簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)到非常大和復(fù)雜的神經(jīng)網(wǎng)絡(luò)模型。接下來(lái),在本章中將會(huì)了解 Keras 框架的架構(gòu)以及 Keras 如何幫助深度學(xué)習(xí)。
Keras API 可以分為三個(gè)主要類別:
在 Keras 中,每個(gè) ANN 都由Keras 模型表示。反過(guò)來(lái),每個(gè) Keras 模型都是由Keras 層組成,代表 ANN 層,如輸入、隱藏層、輸出層、卷積層、池化層等,Keras 模型和層訪問(wèn)Keras 模塊,用于激活函數(shù)、損失函數(shù)、正則化函數(shù)等,使用 Keras 模型、Keras 層和 Keras 模塊,可以以簡(jiǎn)單有效的方式表示任何 ANN 算法(CNN、RNN 等)。
下圖描述了模型、層和核心模塊之間的關(guān)系:
讓我們看看 Keras 模型、Keras 層和 Keras 模塊。
Keras 模型由兩種類型:
順序模型(Sequential Model)
順序模型基本上是 Keras 層的線性組合。序列模型簡(jiǎn)單、最小,并且能夠表示幾乎所有可用的神經(jīng)網(wǎng)絡(luò)。
一個(gè)簡(jiǎn)單的順序模型如下 :
from keras.models import Sequential
from keras.layers import Dense, Activation
model = Sequential()
model.add(Dense(512, activation = 'relu', input_shape = (784,)))
順序模型公開(kāi)了Model類供我們創(chuàng)建自定義模型。我們可以使用子分類概念來(lái)創(chuàng)建我們自己的復(fù)雜模型。
功能 API
功能 API 基本上用于創(chuàng)建復(fù)雜的模型。
Keras 模型中的每個(gè) Keras 層代表實(shí)際提出的神經(jīng)網(wǎng)絡(luò)模型中的對(duì)應(yīng)層(輸入層、隱藏層和輸出層)。Keras 提供了很多預(yù)構(gòu)建層,因此可以輕松創(chuàng)建任何復(fù)雜的神經(jīng)網(wǎng)絡(luò)。下面指定了一些重要的 Keras 層,
使用順序模型表示神經(jīng)網(wǎng)絡(luò)模型的簡(jiǎn)單 Python 代碼如下:
from keras.models import Sequential
from keras.layers import Dense, Activation, Dropout model = Sequential()
model.add(Dense(512, activation = 'relu', input_shape = (784,)))
model.add(Dropout(0.2))
model.add(Dense(512, activation = 'relu')) model.add(Dropout(0.2))
model.add(Dense(num_classes, activation = 'softmax'))
Sequential
模型Dense
層和Activation
模塊Sequential API
創(chuàng)建一個(gè)新的順序模型relu
激活(使用 Activation 模塊)功能的密集層(Dense API)。dropout
層(Dropout API)來(lái)處理過(guò)擬合。dropout
層(Dropout API)來(lái)處理過(guò)擬合。softmax
激活(使用 Activation 模塊)功能的最終密集層(Dense API)。
Keras 還提供了創(chuàng)建我們自己的自定義層的選項(xiàng)。自定義層可以通過(guò)對(duì) Keras.Layer
類進(jìn)行子分類來(lái)創(chuàng)建,它類似于對(duì) Keras 模型進(jìn)行子分類。
Keras 還提供了很多內(nèi)置的神經(jīng)網(wǎng)絡(luò)相關(guān)函數(shù)來(lái)正確創(chuàng)建 Keras 模型和 Keras 層。一些功能如下:
讓我們?cè)诮酉聛?lái)的章節(jié)中詳細(xì)學(xué)習(xí) Keras 模塊。
更多建議: