在进行卷积神经网络理解的时候,对它的卷积连接权重的初始化发生了兴趣.

        

conv1 = tf.layers.conv2d()进行卷积的各个参数的定义。

  其中一个参数是权值的初始化设置,如图:

                                                   tf.layers.conv2d卷积权重初始化问题记录

    kernel_initializer是权重的初始化方式,但它竟然默认为None,这是啥意思呢?

        查证源码,这样解释:

        tf.layers.conv2d卷积权重初始化问题记录

        嘿!默认为glorot_uniform_initializer,也称之为 Xavier normal initializer

        那这玩意儿(Xavier ​​​​​​​)是啥东西呢?

               由一个均匀分布(uniform distribution)来初始化数据。

               假设均匀分布的区间是[-limit, limit],则

               limit=sqrt(6 / (fan_in + fan_out))

               其中的fan_in和fan_out分别表示输入单元的结点数和输出单元的结点数。

         https://zhuanlan.zhihu.com/p/22028079  这里关于Xavier 原理讲的挺不错

                Xavier 提出经过:

                              从神经网络的正向,反向推导

                              再到梯度消失和梯度爆炸的由来https://zhuanlan.zhihu.com/p/25631496

                              再到如何初始化权重来预防梯度消失和梯度爆炸问题

 

 

 

 

相关文章:

  • 2021-08-04
  • 2021-08-03
  • 2021-11-17
  • 2021-10-22
  • 2021-09-06
  • 2021-06-08
猜你喜欢
  • 2021-11-19
  • 2021-12-04
  • 2021-11-28
  • 2021-05-27
  • 2021-07-11
  • 2021-06-05
  • 2022-12-23
相关资源
相似解决方案