“统一”使用什么初始化器?

时间:2018-07-11 16:08:21

标签: keras

Keras提供各种initializers的权重和偏差。 'uniform'使用哪个?

我认为应该是RandomUniform,但这在文档中没有得到确认,并且我在源代码中陷入了死胡同:键'uniform'被用作模块和I cannot find where the variable uniform is set

2 个答案:

答案 0 :(得分:1)

不过,我认为today的答案更好。

更简单的解决方案

在交互式提示下,

import keras
keras.initializers.normal
# Out[3]: keras.initializers.RandomNormal

keras.initializers.uniform
# Out[4]: keras.initializers.RandomUniform

原始帖子

将调试器运行到deserialize method in initializers.py 并检查

globals()['uniform']

表明该值确实是

<class 'keras.initializers.RandomUniform'>

类似地,'normal'在调试器中显示为<class 'keras.initializers.RandomNormal'>

Note that uniform often works better than normal, and the theoretical advantages of one over the other is not clear

答案 1 :(得分:1)

确认这一点的另一种方法是查看initializers source code

# Compatibility aliases

zero = zeros = Zeros
one = ones = Ones
constant = Constant
uniform = random_uniform = RandomUniform
normal = random_normal = RandomNormal
truncated_normal = TruncatedNormal
identity = Identity
orthogonal = Orthogonal