簡體   English   中英

如何初始化Keras模型中的偏差?

[英]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/initializers/

你可以在這里找到答案。 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_initializerbias_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM