【问题标题】:what is the default kernel_initializer in keraskeras 中默认的 kernel_initializer 是什么
【发布时间】:2018-04-03 15:53:18
【问题描述】:

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

https://keras.io/initializers/

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

谁知道默认初始化器是什么?文档没有显示默认值。

【问题讨论】:

    标签: neural-network keras


    【解决方案1】:

    通常,默认为glorot_uniform。不同的图层类型可能有不同的默认kernel_initializer。如有疑问,只需查看源代码code。比如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):
    

    【讨论】:

    • +1 你给一个人他的答案他解决了一个问题,你教一个人阅读源代码,他每天都在解决问题。
    • 还有glorot_normal,但我读到格洛罗特和他都喜欢制服。
    【解决方案2】:

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

    fan_avg = (fan_in + fan_out) /2

    输入数 = fan_in

    一层中的神经元数 = fan_out

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-29
      • 2015-06-09
      • 1970-01-01
      • 2012-07-04
      • 2020-10-27
      相关资源
      最近更新 更多