Keras框架簡介

2022-03-26 18:06:42 字數 3116 閱讀 2865

keras是基於theano的乙個深度學習框架,它的設計參考了torch,用python語言編寫,是乙個高度模組化的神經網路庫,支援gpu和cpu。使用文件在這:中文文件在這: ,這個框架是2023年流行起來的,使用中遇到的困惑或者問題可以提交到github:

keras主要包括14個模組包,可參見文件 ,下面主要對models、layers、initializations、activations、objectives、optimizers、preprocessing、metrics八個模組包展開介紹。

1. models包:keras.models

這是keras中最主要的乙個模組,用於對各個元件進行組裝。

詳細說明:

from keras.models import sequential

model = sequential()  # 初始化模型

model.add(...)  # 可使用add方法組裝元件

2. layers包:keras.layers

該模組主要用於生成神經網路層,包含多種型別,如core layers、convolutional layers、recurrent layers、advanced_activations layers、normalization layers、embeddings layers等。

其中core layers裡面包含了flatten(cnn的全連線層之前需要把二維特徵圖flatten成為一維的)、reshape(cnn輸入時將一維的向量弄成二維的)、dense(隱藏層)。

convolutional layers層包含theano的convolution2d的封裝等。

詳細說明:

from keras.layers import dense  # dense表示bp層

model.add(dense(input_dim=3,output_dim=5))  # 加入隱含層

3. initializations包:keras.initializations

該模組主要負責對模型引數(權重)進行初始化,初始化方法包括:uniform、lecun_uniform、normal、orthogonal、zero、glorot_normal、he_normal等。

詳細說明:

model.add(dense(input_dim=3,output_dim=5,init='uniform')) #加入帶初始化(uniform)的隱含層

4. activations包:keras.activations、keras.layers.advanced_activations(新啟用函式)

該模組主要負責為神經層附加啟用函式,如linear、sigmoid、hard_sigmoid、tanh、softplus、softmax、relu以及leakyrelu、prelu等比較新的啟用函式。

詳細說明:

model.add(dense(input_dim=3, output_dim=5, activation='sigmoid'))  # 加入帶啟用函式(sigmoid)的隱含層

等價於:

model.add(dense(input_dim=3, output_dim=5))

model.add(activation('sigmoid'))

5. objectives包:keras.objectives

該模組主要負責為神經網路附加損失函式,即目標函式。如mean_squared_error,mean_absolute_error ,squared_hinge,hinge,binary_crossentropy,categorical_crossentropy等,其中binary_crossentropy,categorical_crossentropy是指logloss。

注:目標函式的設定是在模型編譯階段。

詳細說明:

model.compile(loss='binary_crossentropy', optimizer='sgd') #loss是指目標函式

6. optimizers包:keras.optimizers

該模組主要負責設定神經網路的優化方法,如最基本的隨機梯度下降sgd,另外還有adagrad、adadelta、rmsprop、adam,一些新的方法以後也會被不斷新增進來。

詳細說明:

keras.optimizers.sgd(lr=0.01, momentum=0.9, decay=0.9, nesterov=false)

上面的**是sgd的使用方法,lr表示學習速率,momentum表示動量項,decay是學習速率的衰減係數(每個epoch衰減一次),nesterov的值是false或者true,表示使不使用nesterov momentum。

model = sequential()

model.add(dense(64, init='uniform', input_dim=10))

model.add(activation('tanh'))

model.add(activation('softmax'))

sgd = sgd(lr=0.01, decay=1e-6, momentum=0.9, nesterov=true)

model.compile(loss='mean_squared_error', optimizer=sgd)  #指優化方法sgd

model.compile(loss='binary_crossentropy', optimizer='sgd')

7. preprocessing包:keras.preprocessing

資料預處理模組,包括序列資料的處理、文字資料的處理和影象資料的處理等。對於影象資料的處理,keras提供了imagedatagenerator函式,實現資料集擴增,對影象做一些彈性變換,比如水平翻轉,垂直翻轉,旋轉等。

8. metrics包:keras.metrics

與sklearn中metrics包基本相同,主要包含一些如binary_accuracy、mae、mse等的評價方法。

predict = model.predict_classes(test_x)       #輸出**結果

keras.metrics.binary_accuracy(test_y, predict)  #計算**精度

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

順序模型指南 深度學習看了不少的入門資料和學習方法,始終不得其解,感覺非常的混亂,同樣的東西可以用多種方式訓練,就算是同乙個模型,各種的優化器各種的語法甚至各種看不懂的寫法都讓我很蛋疼。最後實在沒法選學習方向了,於是去tensorflow官網看教程,看了幾個教程,發現用了很多的keras這個東西,感...

Keras框架安裝總結

需要說明,keras是基於theano的深度學習框架,但是最終安裝沒有實現blas加速。大致過程如下 環境 所有軟體都是64位 win7 x64 cuda 6.5 x64 vs2012 x64 anaconda x64 step1.先安裝cuda,安裝的版本為6.5,直接和vs2012實現 編譯。記...

Keras深度學習框架配置

專案 是在windows 7上執行的,主要用到的matlab r2013a和python,其中matlab用於patch的分割和預處理,卷積神經網路搭建用到了根植於python和theano的深度學習框架keras。keras是基於theano的乙個深度學習框架,它的設計參考了torch,用pyth...