Tensorflow自编码器及多层感知机

(1)Xavier初始化权重:让权重满足0均值,方差为2 / (fan_in+fan_out),分布可以用均匀分布或高斯分布。

    以均匀分布为例:均匀分布方差D(x)=(b-a)/ 12。具体推导查书吧。

    fan_in为输入节点,fan_out为输出节点。

    a,b都是fan_in,fan_out的映射,假设a,b关于原点对称且a<0<b,b = -a

   2/(fan_in+fan_out) = (b-a)2/12 

        且  b= -a

  解得:b= sqrt(6/(fan_in+fan_out))

                 a= -b

   此时满足Xavier条件。tf.random_uniform创建(a,b)范围内的均匀分布,方差满足2 / (fan_in+fan_out)。

1 def xavier_init(fan_in, fan_out, constant = 1):
2     low = -constant * np.sqrt(6.0 / (fan_in + fan_out))
3     high = constant * np.sqrt(6.0 / (fan_in + fan_out))
4     return tf.random_uniform((fan_in, fan_out), minval=low, maxval=high, dtype= tf.float32)

   

原文地址:https://www.cnblogs.com/eclipSycn/p/7171205.html