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