栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

tf中的batchnorm

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tf中的batchnorm

tf中的batchnorm

目录
  • tf中的batchnorm
    • 1. 使用batchnorm目的
    • 2. 常见Normalization([N, C, H*W])
    • 3. Batch normalization
    • 4. TensorFlow中Batch normalization实现
    • 5. 使用Batch normalization好处

1. 使用batchnorm目的
  • 在使用sigmoid函数时,在函数两端的梯度几乎为0,位于这部分区间的数据参数更新很慢。利用
    normalization可以把之前数据的分布平移缩放到0附近,这样有利于数据参数更新
  • image Normalization(图片数据规整化)
def normalize(x, mean, std):
    x = x - mean
    x = x / std
    return x
2. 常见Normalization([N, C, H*W])
  • Batch Norm:在C(通道维)计算均值和方差用于Normalization
  • Layer Norm:在N(实例维)计算均值和方差用于Normalization
  • Instance Norm:在N上的每个C上计算均值和方差用于Normalization
3. Batch normalization
  • 通过计算出的均值和方差将数据规整化 z ˇ i = z i − μ σ check z^i = frac{z^i -mu}{sigma} zˇi=σzi−μ​
  • 通过学习而得的参数(学习而得的均值和方差)将数据规整化,使其服从N( β beta β , γ , gamma ,γ)分布 z ^ i = γ ⨀ z ˇ i + β hat z^i = gamma bigodot check z^i+beta z^i=γ⨀zˇi+β
4. TensorFlow中Batch normalization实现
  • 使用函数net = layers.BatchNormalization()实现,其中默认的四个参数分别如下所示
    axis=-1 表示在哪个轴上做normalization
    center=True 表示是否使用 β beta β参数
    scale=True 表示是否使用 γ gamma γ参数
    trainable=True 表示 β beta β, γ gamma γ参数是否需要反向传播
5. 使用Batch normalization好处
  • 收敛速度更快
  • 得到更好的结果
  • 模型更稳定(减少因学习率导致梯度导致参数不更新的可能),可以使用更大的学习率
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/269620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号