• keras_14_初始化Initializers


    1. 模型初始化

    • 初始化定义了设置 Keras 各层权重随机初始值的方法。用来将初始化器传入 Keras 层的参数名取决于具体的层。通常关键字为 kernel_initializerbias_initializer:

      model.add(Dense(64,
                      kernel_initializer='random_uniform',
                      bias_initializer='zeros'))
      
    • 内置的初始化工具 (是 keras.initializers 模块的一部分)

      • Initializer

        • 初始化器基类:所有初始化器继承这个类。
      • Zeros

        • 将张量初始值设为 0 的初始化器。
      • Ones

        • 将张量初始值设为 1 的初始化器。
      • Constant

        • 将张量初始值设为 constant的初始化器。
      • RandomNormal

        • 按照正态分布生成随机张量
      • RandomUniform

        • 按照均匀分布生成随机张量
      • TruncatedNormal

        • 截尾正态分布。生成的随机值与 RandomNormal 生成的类似,但是在距离平均值两个标准差之外的随机值将被丢弃并重新生成。这是用来生成神经网络权重和滤波器的推荐初始化器。
      • VarianceScaling

        • 初始化器能够根据权值的尺寸调整其规模。

          使用 distribution="normal" 时,样本是从一个以 0 为中心的截断正态分布中抽取的,stddev = sqrt(scale / n),其中 n 是:

          • 权值张量中输入单元的数量,如果 mode = "fan_in"。
          • 输出单元的数量,如果 mode = "fan_out"。
          • 输入和输出单位数量的平均数,如果 mode = "fan_avg"。

          使用 distribution="uniform" 时,样本是从 [-limit,limit] 内的均匀分布中抽取的,其中 limit = sqrt(3 * scale / n)

      • Orthogonal

        • 生成一个随机正交矩阵
      • Identity

        • 生成单位矩阵
      • lecun_uniform

        • LeCun 均匀初始化器。它从 [-limit,limit] 中的均匀分布中抽取样本, 其中 limitsqrt(3 / fan_in)fan_in 是权值张量中的输入单位的数量。
      • glorot_normal (cs231n推荐):也称为 Xavier 正态分布初始化器。

        • 它从以 0 为中心,标准差为 stddev = sqrt(2 / (fan_in + fan_out)) 的截断正态分布中抽取样本, 其中 fan_in 是权值张量中的输入单位的数量, fan_out 是权值张量中的输出单位的数量。
      • glorot_uniform:Glorot 均匀分布初始化器,也称为 Xavier 均匀分布初始化器。

        • 它从 [-limit,limit] 中的均匀分布中抽取样本, 其中 limitsqrt(6 / (fan_in + fan_out))fan_in 是权值张量中的输入单位的数量, fan_out 是权值张量中的输出单位的数量。
      • he_normal

        • He 正态分布初始化器。它从以 0 为中心,标准差为 stddev = sqrt(2 / fan_in) 的截断正态分布中抽取样本, 其中 fan_in是权值张量中的输入单位的数量,
      • lecun_normal

        • LeCun 正态分布初始化器。它从以 0 为中心,标准差为 stddev = sqrt(1 / fan_in) 的截断正态分布中抽取样本, 其中 fan_in是权值张量中的输入单位的数量。
      • he_uniform

        • He 均匀方差缩放初始化器。它从 [-limit,limit] 中的均匀分布中抽取样本, 其中 limitsqrt(6 / fan_in), 其中 fan_in 是权值张量中的输入单位的数量。

    2. 自定义初始化器

    • 如果传递一个自定义的可调用函数,那么它必须使用参数 shape(需要初始化的变量的尺寸)和 dtype(数据类型):

      from keras import backend as K
      
      def my_init(shape, dtype=None):
          return K.random_normal(shape, dtype=dtype)
      
      model.add(Dense(64, kernel_initializer=my_init))
      
  • 相关阅读:
    hihoCoder week20 线段树的区间修改
    hihoCoder week19 RMQ问题再临-线段树 单点更新 区间查询
    hihoCoder week17 最近公共祖先·三 lca st表
    hihoCoder week16 RMQ-ST算法
    hihoCoder week15 最近公共祖先·二
    eclipse 分屏显示同一文件
    eclipse 每次以debug方式启动springboot之后都会在SilentExitExceptionHandler类中的throw new SilentExitException()处断开,但是我明明没有下断点啊
    eclipse alt+/智能提示错误问题
    SpringBoot 之 普通类获取Spring容器中的bean
    kafka常用命令
  • 原文地址:https://www.cnblogs.com/LS1314/p/10380676.html
Copyright © 2020-2023  润新知