您好,登錄后才能下訂單哦!
小編這次要給大家分享的是keras如何實現(xiàn)權(quán)重初始化,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。
在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,好的權(quán)重 初始化會加速訓(xùn)練過程。
下面說一下kernel_initializer 權(quán)重初始化的方法。
不同的層可能使用不同的關(guān)鍵字來傳遞初始化方法,一般來說指定初始化方法的關(guān)鍵字是kernel_initializer 和 bias_initializer
model.add(Dense(64, kernel_initializer=initializers.random_normal(stddev=0.01))) # also works; will use the default parameters. model.add(Dense(64, kernel_initializer='random_normal'))
幾種初始化方法
keras.initializers.Zeros()#全0 keras.initializers.Ones()#全1 keras.initializers.RandomNormal(mean=0.0, stddev=0.05, seed=None))#指定均值和方差的正態(tài)分布初始化 keras.initializers.RandomUniform(minval=-0.05, maxval=0.05, seed=None)#指定下邊界和上邊界的均勻分布初始化 keras.initializers.TruncatedNormal(mean=0.0, stddev=0.05, seed=None)#截尾高斯分布初始化,位于均值兩個標(biāo)準(zhǔn)差以外的數(shù)據(jù)將會被丟棄并重新生成,形成截尾分布
自定義初始化
def my_init(shape, dtype=None): return K.random_normal(shape, dtype=dtype) model.add(Dense(64, init=my_init))
補充知識:Keras中權(quán)重weight的初始化
Keras 的原始構(gòu)造模塊是模型,最簡單的模型稱為序貫?zāi)P停?Keras 的序貫?zāi)P褪巧窠?jīng)網(wǎng)絡(luò)層的線性管道 ( 堆棧) 。
以下代碼段定義了 一個包含 12 個人工神經(jīng)元的單層 網(wǎng)絡(luò),它預(yù)計有 8 個輸入變量 ( 也稱為特征):
from keras.models import Sequential model =Sequential() model.add(12,input_dim=8,kernel_initializer='random_uniform')
每個神經(jīng)元可以用特定的權(quán)重進(jìn)行初始化 。 Keras 提供了 幾個選擇 , 其中最常用的選擇如下所示。
random_unifrom:權(quán)重被初始化為(-0.5,0.5)之間的均勻隨機的微小數(shù)值,換句話說,給定區(qū)間里的任何值都可能作為權(quán)重 。
random_normal:根據(jù)高斯分布初始化權(quán)重,其中均值為0,標(biāo)準(zhǔn)差為0.05。
zero:所有權(quán)重被初始化為0。
看完這篇關(guān)于keras如何實現(xiàn)權(quán)重初始化的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。