【问题标题】:What is the difference between xavier_initializer and xavier_initializer_conv2d?xavier_initializer 和 xavier_initializer_conv2d 有什么区别?
【发布时间】:2017-07-06 07:13:00
【问题描述】:

我注意到 TensorFlow 1.0 在 contrib 中包含两个 Xavier 初始化助手,

两者都链接到相同的文档页面并具有相同的签名:

tf.contrib.layers.xavier_initializer(uniform=True, seed=None, dtype=tf.float32)
tf.contrib.layers.xavier_initializer_conv2d(uniform=True, seed=None, dtype=tf.float32)

但是根本没有解释它们之间的区别。我可以通过名称猜到_conv2d 版本应该用于 2D 卷积层,但如果使用常规版本会产生明显的影响吗?

【问题讨论】:

    标签: tensorflow neural-network deep-learning conv-neural-network


    【解决方案1】:

    其实没有区别。因为这两个函数都实现了权重初始化:

    Xavier Glorot 和 Yoshua Bengio(2010 年):Understanding the difficulty of training deep feedforward neural networks. 人工智能和统计国际会议。

    这两个初始化器都旨在保持所有层的渐变比例大致相同。在均匀分布中,这最终成为范围:x = sqrt(6. / (in + out)); [-x, x],对于正态分布,使用标准差 sqrt(3. / (in + out))

    【讨论】:

    猜你喜欢
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    • 2012-02-06
    • 2011-02-25
    • 2011-11-22
    • 2015-03-26
    • 2013-08-19
    相关资源
    最近更新 更多