Keras框架優化器引數

2021-08-11 08:27:41 字數 2517 閱讀 2019

keras後端基於tensorflow、theano以及cntk編寫而成,keras中文文件參考

1.從keras.models庫引入sequential類

2.定義sequential類的物件model

3.向model裡add每一層(隱藏層,啟用層等)

4.逐層加完之後對model進行compile:編譯模型時必須指明損失函式和優化器,如果你需要的話,也可以自己定製損失函式。keras裡也封裝好了很多優化器和損失函式。

5.利用以上定義好的model和處理好的資料(主要是維度)fit建模:可以設定每批訓練數batch和訓練週期epoch

6.對訓練好的model進行evaluate和迭代修正

7.利用訓練好的model進行predict

1.) 標準的梯度下降法、sgd、mini-batch gdwt

=wt−

1+η∇

wf(w

t−1)

sgd較慢且易陷入鞍點,區域性最優

2.) momentum{v

t=γv

t−1+

η∇wf

(wt−

1)wt

=wt−

1−vt

γ一般取0.9

3.) nag{v

t=γv

t−1+

η∇wf

(wt−

1−γv

t−1)

wt=w

t−1−

vtnag是對momentum的改進

4.) adagrad⎧⎩

⎨gt=

gt−1

+∇wf

(wt−

1)2w

t=wt

−1−η

gt−1

+ε√∇

wf(w

t−1)

ε一般取1e-8,adagrad對momentum的學習率進行了自適應改進

5.) rmsprop⎧⎩

⎨gt=

γgt−

1+(1

−γ)∇

wf(w

t−1)

2wt=

wt−1

−ηgt

−1+ε

√∇wf

(wt−

1) γ

一般取0.9,rmsprop是對adagrad裡gt

迭代取值的改進

6.) adadelta⎧⎩

⎨⎪⎪⎪

⎪⎪⎪⎪

⎪⎪⎪g

t=γg

t−1+

(1−γ

)∇wf

(wt−

1)2e

t=γe

t−1+

(1−γ

)(δw

t)2δ

wt=−

et−1

+ε√g

t+ε√

∇wf(

wt)w

t=wt

−1+δ

wt−1

γ一般取0.9

7.) adam⎧⎩

⎨⎪⎪⎪

⎪⎪⎪⎪

⎪⎪⎪m

t=β1

mt−1

+(1−

β1)∇

wf(w

t)vt

=β2v

t−1+

(1−β

2)∇w

f(wt

)2mˆ

t=mt

1−βt

1,vˆ

t=vt

1−βt

2wt=

wt−1

−ηmˆ

tvˆt

√+ε

β1一般取0.9,β2

一般取0.999

import numpy as np

from keras.datasets import mnist

from keras.utils import np_utils

from keras.models import sequential

from keras.layers import dense

from keras.optimizers import adam

...# 定義優化器

adam = adam(lr=1e-4)

# 定義優化器,loss function,訓練過程中計算準確率

model.compile(optimizer=adam,loss='categorical_crossentropy',metrics=['accuracy'])

Keras框架簡介

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

Keras框架安裝總結

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

keras設定學習率 優化器的用法

優化器 optimizer 是編譯 keras 模型的所需的兩個引數之一 from keras import optimizers model sequential model.add dense 64,kernel initializer uniform input shape 10,model....