标准化层 Normalization - Keras 中文文档 https://keras.io/zh/layers/normalization/#batchnormalization
什么是批标准化 (Batch Normalization) - zh https://zhuanlan.zhihu.com/p/24810318

BN 效果
Batch normalization 也可以被看做一个层面. 在一层层的添加神经网络的时候, 我们先有数据 X, 再添加全连接层, 全连接层的计算结果会经过 激励函数 成为下一层的输入, 接着重复之前的操作. Batch Normalization (BN) 就被添加在每一个全连接激励函数之间.


之前说过, 计算结果在进入激励函数前的值很重要, 如果我们不单单看一个值, 我们可以说, 计算结果值的分布对于激励函数很重要. 对于数据值大多分布在这个区间的数据, 才能进行更有效的传递. 对比这两个在激活之前的值的分布. 上者没有进行 normalization, 下者进行了 normalization, 这样当然是下者能够更有效地利用 tanh 进行非线性化的过程.


没有 normalize 的数据 使用 tanh 激活以后, 激活值大部分都分布到了饱和阶段, 也就是大部分的激活值不是-1, 就是1, 而 normalize 以后, 大部分的激活值在每个分布区间都还有存在. 再将这个激活后的分布传递到下一层神经网络进行后续计算, 每个区间都有分布的这一种对于神经网络就会更加有价值.

Batch normalization 函数

keras.layers.BatchNormalization(axis=-1, momentum=0.99, epsilon=0.001, center=True,scale=True, beta_initializer='zeros', gamma_initializer='ones', moving_mean_initializer='zeros', moving_variance_initializer='ones', beta_regularizer=None, gamma_regularizer=None, beta_constraint=None, gamma_constraint=None)

批量标准化层 (Ioffe and Szegedy, 2014)。

在每一个批次的数据中标准化前一层的激活项, 即,应用一个维持激活项平均值接近 0,标准差接近 1 的转换。

参数

  • axis: 整数,需要标准化的轴 (通常是特征轴)。 例如,在 data_format=“channels_first” 的 Conv2D 层之后, 在 BatchNormalization 中设置 axis=1。
  • momentum: 移动均值和移动方差的动量。
  • epsilon: 增加到方差的小的浮点数,以避免除以零。
  • center: 如果为 True,把 beta 的偏移量加到标准化的张量上。 如果为 False, beta 被忽略。
  • scale: 如果为 True,乘以 gamma。 如果为 False,gamma 不使用。 当下一层为线性层(或者例如 nn.relu), 这可以被禁用,因为缩放将由下一层完成。
  • beta_initializer: beta 权重的初始化方法。
  • gamma_initializer: gamma 权重的初始化方法。
  • moving_mean_initializer: 移动均值的初始化方法。
  • moving_variance_initializer: 移动方差的初始化方法。
  • beta_regularizer: 可选的 beta 权重的正则化方法。
  • gamma_regularizer: 可选的 gamma 权重的正则化方法。
  • beta_constraint: 可选的 beta 权重的约束方法。
  • gamma_constraint: 可选的 gamma 权重的约束方法。

输入尺寸

可以是任意的。如果将这一层作为模型的第一层, 则需要指定 input_shape 参数 (整数元组,不包含样本数量的维度)。

输出尺寸

与输入相同。

【tensorflow-keras-BatchNormalization】BatchNormalization批量标准化层相关推荐

  1. tf.keras.layers.BatchNormalization、tf.keras.layer.LayerNormalization函数

    1.BatchNormalization函数 函数原型 tf.keras.layers.BatchNormalization(axis=-1, momentum=0.99, epsilon=0.001 ...

  2. 批标准化 tf.keras.layers.BatchNormalization 参数解析与应用分析

    Table of Contents 函数调用 设置training=None时可能存在的问题 :tf.keras.backend.learning_phase()的特点 批标准化函数产生的变量是可训练 ...

  3. 批标准化 tf.keras.layers.BatchNormalization 中的trainable参数与training参数比较

    巨坑提醒:tf.keras与tensorflow混用,trainable=False根本不起作用.正文不用看了. 摘要: 在tensorflow中,training参数和trainable参数是两个不 ...

  4. Tensorflow学习之tf.keras(一) tf.keras.layers.BatchNormalization

    标准化 输入/激活函数 tf.keras.layers.BatchNormalization( axis=-1, momentum=0.99, epsilon=0.001, center=True, ...

  5. keras从入门到放弃(十八)批量标准化

    什么是批量标准化 批标准化(Batch Normalization,BN),又叫批量归一化,是一种用于改善人工神经网络的性能和稳定性的技术. 这是一种为神经网络中的任何层提供零均值/单位方差输入的技术 ...

  6. 【Python-Keras】keras.layers.BatchNormalization解析与使用

    1 什么是BatchNormalization? (1)Batch Normalization 于2015年由 Google 提出数据归一化方法,往往用在深度神经网络中激活层之前. (2)其规范化针对 ...

  7. Tensorflow.keras.layers各种层的学习笔记

    目录 karas简介 一. 输入层keras.layers.Input 二. 嵌入层keras.layers.Embedding 三. Lambda层keras.layers.Lamda karas简 ...

  8. Tensorflow.Keras 时序回归模型的建立

    Learn from Keras官方网站 目前tensorflow 2.0版本已经集成了keras的所有功能,所以直接安装tensorflow就可以调用Keras,非常方便. 作为Keras入门可以看 ...

  9. 人工智能AI:TensorFlow Keras PyTorch MXNet PaddlePaddle 深度学习实战 part1

    日萌社 人工智能AI:TensorFlow Keras PyTorch MXNet PaddlePaddle 深度学习实战 part1 人工智能AI:TensorFlow Keras PyTorch ...

最新文章

  1. wxpython 内嵌字体_【wxPython】wx.font类字体
  2. Nginx-07:Nginx配置实例之动静分离
  3. 看到了商机,为什么赚不到钱?
  4. EntityManager的使用
  5. linux安装pytorch-GPU版本
  6. 准备用于AI人脸识别的数据集
  7. CV还要更热闹!旷视刚宣布4.6亿美元融资,商汤:新一轮年内完成
  8. SAP BPC最佳实践-BPC安装及配置的常见问题
  9. 通用商品后端管理系统
  10. kotlin的代理和委托
  11. Java将一个堆栈进行反转,如何使用Java中的堆栈反转数组的元素?
  12. 梳理chromium/chrome/谷歌浏览器对flash的支持
  13. 案例分析 | 茶饮如何积累3500万私域流量实现弯道超车?
  14. SwfObjects在页面中嵌入flash(SWF)
  15. 设计模式——开闭原则
  16. C语言练习2-14 求奇数分之一序列前N项和
  17. Sublime的使用小技巧
  18. drawLine(self, Union[QPointF, QPoint], Union[QPointF, QPoint]): argument 1 has unexpected type ‘floa
  19. goldendb与mysql_GoldenDB ,一个已经全面支撑银行核心系统的国产数据库
  20. 求给定非负整数的阶乘

热门文章

  1. JavaScript实现hamiltonianCycle哈密尔顿图算法(附完整源码)
  2. OpenCASCADE:拓扑 API之圆角和倒角
  3. boost::phoenix::bind相关的测试程序
  4. boost::mp11::mp_any相关用法的测试程序
  5. boost::hana::drop_front_exactly用法的测试程序
  6. boost::intrusive::auto_unlink_hook用法的测试程序
  7. boost::hana::remove_range用法的测试程序
  8. boost::callable_traits的has_varargs的测试程序
  9. ITK:可视化静态稀疏Shi 2D水平设置图层
  10. ITK:计算和显示图像的梯度