什么是keras中的默认kernel_initializer

时间:2017-10-23 07:03:59

标签: neural-network keras

在用户手册中,它显示了

下面的不同kernel_initializer

https://keras.io/initializers/

主要目的是初始化神经网络中的权重矩阵。

任何人都知道默认的初始化程序是什么?该文件没有显示默认值。

2 个答案:

答案 0 :(得分:50)

通常,默认情况下为glorot_uniform。不同的图层类型可能具有不同的默认kernel_initializer。如有疑问,请查看源代码。例如,对于Dense图层:

class Dense(Layer):
...
    def __init__(self, units,
                 activation=None,
                 use_bias=True,
                 kernel_initializer='glorot_uniform',
                 bias_initializer='zeros',
                 kernel_regularizer=None,
                 bias_regularizer=None,
                 activity_regularizer=None,
                 kernel_constraint=None,
                 bias_constraint=None,
                 **kwargs):

https://github.com/fchollet/keras/blob/62d097c4ff6fa694a4dbc670e9c7eb9e2bc27c74/keras/layers/core.py#L798

答案 1 :(得分:2)

GlorotUniform ,keras使用具有均匀分布的Glorot初始化。r=√(3 / fan_avg)

fan_avg =(fan_in + fan_out)/ 2

输入数量= fan_in

一层中的核子数量= fan_out