[英]How to initialize biases in a Keras model?
我正在嘗試在Keras中構建一個合成模型,我需要為權重和偏差分配值。 分配權重很簡單,我使用此處提供的說明: https : //keras.io/initializations/ 。 但是,我找不到有關如何分配偏差的任何說明。 有任何想法嗎?
你也可以像這樣使用bias_initializer:
model.add(Dense(64,
kernel_initializer='random_uniform',
bias_initializer='zeros')
你可以在這里找到答案。 https://keras.io/layers/core/
weights :要設置為初始權重的Numpy數組列表。 該列表應具有2個元素,分別為權重和偏差的形狀(input_dim,output_dim)和(output_dim)。
添加新圖層時,您可以定義參數“weights”,一個包含初始w的列表和一個帶有speicified形狀的b 。
model.add(Dense(50, input_dim= X_train.shape[1], weights = [np.zeros([692, 50]), np.zeros(50)]))
初始化具有小正值的偏差,例如0.1
由於我們正在使用ReLU神經元,因此使用略微正的初始偏差初始化它們以避免“死亡神經元”也是一種好習慣。
每層的權重和偏差初始化可以分別通過layers.Dense()
kernel_initializer
和bias_initializer
關鍵字參數來設置。 如果用戶未定義,則應用kernel_initializer='glorot_uniform'
和bias_initializer='zeros'
默認設置。
例如,如果要將圖層的權重初始化初始化為隨機統一而不是glorot並將初始化偏差設置為0.1而不是0,則可以按如下方式定義給定圖層:
from keras import layers, initializers
layer = layers.Dense(64,
activation='relu',
kernel_initializer='random_uniform',
bias_initializer=initializers.Constant(0.1))(previous_layer)
有關密集層關鍵字參數和初始化程序/有關預設和可自定義初始化程序選項的詳細信息,請參閱layers / core /
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.