machine-learning - xavier_initializer() 如何知道激活?

标签 machine-learning tensorflow

tf.contrib.layers.xavier_initializer() 如何知道激活函数?

初始化良好的标准偏差取决于所使用的非线性。正确的?那么 tf.contrib.layers.xavier_initializer() 如何知道发生了什么?

看下面的案例:

W = tf.get_variable("W", shape=[784, 256],
           initializer=tf.contrib.layers.xavier_initializer())

这个 W 对 X 执行一些操作,然后将结果传递给 tanh 或 relu 或 have you。现在,初始化器位于 W 中。 tensorflow 如何计算出激活值?或者我是否必须干预,知道我将要使用的激活?

查看 tf.contrib.layers.xavier_initializer 中的参数在那里我可以选择统一分布或正态分布。但这并不能解决问题,对吧?

最佳答案

The standard deviation to initialize well depends on the non-linearity used. Right?

没有。 Xavier 初始化不需要了解网络使用的非线性的任何信息。

事实上,Xavier 初始化只是权重的初始化,从平均值 = 0 且方差 = 1/<number_of_inputs> 的随机分布中选取值。 .

声明变量时,传递 shape范围。形状参数的第一个维度是 <number_of_inputs> .

也许您正在寻找专门为 ReLU e PReLU 定义的 He 初始化,但即使在这种情况下,变量初始化也不需要知道将遵循什么非线性

关于machine-learning - xavier_initializer() 如何知道激活?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39415539/

相关文章:

neural-network - 端到端训练 CNN-LSTM?

c++ - 如何将tensorflow作为外部依赖项添加到现有的bazel项目中

python - 如何将深度网络分成两个独立的网络?

tensorflow - Variable_scope 的值参数

python - 从大量停用词列表中删除停用词需要很长时间

machine-learning - 生成对抗网络生成具有一些随机像素的图像

python - 为什么混淆指标中的正样本量小于实际数据?

floating-point - 将 24 位整数快速、便携地转换为 float ,不会丢失任何位

machine-learning - TensorFlow 中 tf.estimator.Estimator 和 tf.contrib.learn.Estimator 有什么区别

r - 计算两列之间的错误率 R