什么是keras中的默认kernel_initializer

周瑋傑*_*周瑋傑 41 neural-network keras

在用户手册中,它显示了下面的不同kernel_initializer

https://keras.io/initializers/

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

任何人都知道默认的初始化程序是什么?该文档未显示默认值.

Ser*_*lev 66

通常,它是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):
Run Code Online (Sandbox Code Playgroud)

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

  • +1给你一个男人他的答案他解决了一个问题,你教一个人阅读源代码,他每天解决问题. (32认同)

小智 5

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

fan_avg = (fan_in + fan_out) /2

输入数 = fan_in

层中的神经元数 = fan_out