我正在尝试在Keras中构建一个合成模型,我需要为权重和偏差分配值。分配权重很简单,我使用的是此处提供的说明:https://keras.io/initializations/。 但是,我找不到有关如何分配偏差的任何说明。有什么想法吗?
答案 0 :(得分:13)
你也可以像这样使用bias_initializer:
model.add(Dense(64,
kernel_initializer='random_uniform',
bias_initializer='zeros')
答案 1 :(得分:9)
你可以在这里找到答案。 https://keras.io/layers/core/
权重:要设置为初始权重的Numpy数组列表。列表 应该有2个形状元素(input_dim,output_dim)和 (output_dim,)分别为权重和偏差。
添加新图层时,您可以定义参数“weights”,一个包含初始 w 的列表和 b ,其形状已明确。
elasticsearch
答案 2 :(得分:2)
初始化具有小正值的偏差,例如0.1
由于我们正在使用ReLU神经元,因此最好使用稍微正的初始偏差来初始化它们以避免死亡神经元#34;
答案 3 :(得分:0)
可以分别通过kernel_initializer
中的bias_initializer
和layers.Dense()
关键字参数来设置每层的重量和偏差初始化。如果用户未定义,则将应用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/;有关预设和可自定义的初始化程序选项,请参见initializers/。