python - 为什么 `xavier_initializer()`和 `glorot_uniform_initializer()`在某种程度上是重复的?

标签 python tensorflow machine-learning deep-learning initializer

xavier_initializer(uniform=True, seed=None, dtype=tf.float32)glorot_uniform_initializer(seed=None, dtype=tf.float32) 引用相同人 Xavier Glorot。为什么不将它们合并为一个功能?

xavier_initializertf.contrib.layers 中。 tf 中的 glorot_uniform_initializercontrib 的命名空间最终是否会消失,contrib 中的内容将被移动到 tf 的命名空间?

最佳答案

是的,tf.contrib.layers.xavier_initializertf.glorot_uniform_initializer 都实现了本 JMLR paper: Understanding the difficulty of training deep feedforward neural networks 中描述的相同概念,可以在代码中看到:

fan_infan_outmode = FAN_AVGuniform = 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/

相关文章:

python - Tensorflow:在 eager 模式下慢 7 倍

python - 如何解决 "ValueError: A ` Concatenate` 层需要具有匹配形状的输入(除了连接轴之外)”?

python - 我的 CNN 模型中的内核权重初始化在哪里?

machine-learning - Spark/或 Spark 外部包中的多项式回归

带有两个迭代器的 python 一次递增一个

python - 当测试的函数是 Click 命令时 pytest 失败

python - Tensorflow 无法分配设备进行操作

python - 预期是二维数组,却得到一维数组,而是错误

python - 在 MATPLOTLIB 中一一显示两个条形图

python - Pandas Dataframe 上两列的条件更新