xavier_initializer(uniform=True, seed=None, dtype=tf.float32)
和 glorot_uniform_initializer(seed=None, dtype=tf.float32)
引用相同人 Xavier Glorot。为什么不将它们合并为一个功能?
xavier_initializer
在 tf.contrib.layers
中。 tf
中的 glorot_uniform_initializer
。 contrib
的命名空间最终是否会消失,contrib
中的内容将被移动到 tf
的命名空间?
最佳答案
是的,tf.contrib.layers.xavier_initializer
和 tf.glorot_uniform_initializer
都实现了本 JMLR paper: Understanding the difficulty of training deep feedforward neural networks
中描述的相同概念,可以在代码中看到:
fan_in
、fan_out
、mode = FAN_AVG
和 uniform = True
的典型值,两种实现来自标准均匀分布的样本值超过限制[-sqrt(3), sqrt(3)
)
因为 tf.initializer
支持各种初始化策略,它很可能会保留下来,而只有 xavier_initialization
的 contrib 的初始化很可能在未来的版本中被弃用。
所以,是的,很有可能在未来的版本中 tf.contrib.layers.xavier_initialier
初始化方式可能会消失。
关于python - 为什么 `xavier_initializer()`和 `glorot_uniform_initializer()`在某种程度上是重复的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47986662/