自学内容网 自学内容网

神经网络参数初始化的常见方法

参数初始化

bias偏置:直接初始化为0
weight权重:

  • 随机初始化

    • 在高斯分布的数据中随机采样
  • 标准初始化

    • 在均匀分布的随机数中采样
  • Xavier初始化
    该方法的基本思想是各层的激活值和梯度的方差在传播过程中保持一致,也叫做Glorot初始化。

    • 正态化Xavier初始化
      在这里插入图片描述

      import tensorflow as tf
      #正态分布的
      #实例化
      initializer = tf.keras.initializers.glorot_normal()
      values = initializer((9,1))
      print(values)
      
    • 标准化Xavier初始化

      在这里插入图片描述

      import tensorflow as tf
      #标准化的
      initializer = tf.keras.initializers.glorot_uniform()
      values = initializer((9,1))
      print(values)
      
  • He初始化

    he初始化也称Kaiming初始化,出自大神何凯明之手,它的基本思想是正向传播时,激活值的方差保持不变;反向传播时,关于状态值的梯度的方差保持不变。

    • 正态化的he初始化

      在这里插入图片描述

      import tensorflow as tf
      #正态分布
      initializer = tf.keras.initializers.he_normal()
      #采样得到权重
      values = initializer((9,1))
      print(values)
      
    • 标准化的he初始化

      在这里插入图片描述

      import tensorflow as tf
      #标准化-均匀分布
      initializer = tf.keras.initializers.he_uniform()
      #采样得到权重
      values = initializer((9,1))
      print(values)
      

原文地址:https://blog.csdn.net/weixin_51787442/article/details/140471597

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!