日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【tensorflow-keras-BatchNormalization】BatchNormalization批量标准化层

發(fā)布時(shí)間:2024/9/27 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【tensorflow-keras-BatchNormalization】BatchNormalization批量标准化层 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

標(biāo)準(zhǔn)化層 Normalization - Keras 中文文檔 https://keras.io/zh/layers/normalization/#batchnormalization
什么是批標(biāo)準(zhǔn)化 (Batch Normalization) - zh https://zhuanlan.zhihu.com/p/24810318

BN 效果
Batch normalization 也可以被看做一個(gè)層面. 在一層層的添加神經(jīng)網(wǎng)絡(luò)的時(shí)候, 我們先有數(shù)據(jù) X, 再添加全連接層, 全連接層的計(jì)算結(jié)果會(huì)經(jīng)過 激勵(lì)函數(shù) 成為下一層的輸入, 接著重復(fù)之前的操作. Batch Normalization (BN) 就被添加在每一個(gè)全連接激勵(lì)函數(shù)之間.


之前說過, 計(jì)算結(jié)果在進(jìn)入激勵(lì)函數(shù)前的值很重要, 如果我們不單單看一個(gè)值, 我們可以說, 計(jì)算結(jié)果值的分布對(duì)于激勵(lì)函數(shù)很重要. 對(duì)于數(shù)據(jù)值大多分布在這個(gè)區(qū)間的數(shù)據(jù), 才能進(jìn)行更有效的傳遞. 對(duì)比這兩個(gè)在激活之前的值的分布. 上者沒有進(jìn)行 normalization, 下者進(jìn)行了 normalization, 這樣當(dāng)然是下者能夠更有效地利用 tanh 進(jìn)行非線性化的過程.


沒有 normalize 的數(shù)據(jù) 使用 tanh 激活以后, 激活值大部分都分布到了飽和階段, 也就是大部分的激活值不是-1, 就是1, 而 normalize 以后, 大部分的激活值在每個(gè)分布區(qū)間都還有存在. 再將這個(gè)激活后的分布傳遞到下一層神經(jīng)網(wǎng)絡(luò)進(jìn)行后續(xù)計(jì)算, 每個(gè)區(qū)間都有分布的這一種對(duì)于神經(jīng)網(wǎng)絡(luò)就會(huì)更加有價(jià)值.

Batch normalization 函數(shù)

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)

批量標(biāo)準(zhǔn)化層 (Ioffe and Szegedy, 2014)。

在每一個(gè)批次的數(shù)據(jù)中標(biāo)準(zhǔn)化前一層的激活項(xiàng), 即,應(yīng)用一個(gè)維持激活項(xiàng)平均值接近 0,標(biāo)準(zhǔn)差接近 1 的轉(zhuǎn)換。

參數(shù)

  • axis: 整數(shù),需要標(biāo)準(zhǔn)化的軸 (通常是特征軸)。 例如,在 data_format=“channels_first” 的 Conv2D 層之后, 在 BatchNormalization 中設(shè)置 axis=1。
  • momentum: 移動(dòng)均值和移動(dòng)方差的動(dòng)量。
  • epsilon: 增加到方差的小的浮點(diǎn)數(shù),以避免除以零。
  • center: 如果為 True,把 beta 的偏移量加到標(biāo)準(zhǔn)化的張量上。 如果為 False, beta 被忽略。
  • scale: 如果為 True,乘以 gamma。 如果為 False,gamma 不使用。 當(dāng)下一層為線性層(或者例如 nn.relu), 這可以被禁用,因?yàn)榭s放將由下一層完成。
  • beta_initializer: beta 權(quán)重的初始化方法。
  • gamma_initializer: gamma 權(quán)重的初始化方法。
  • moving_mean_initializer: 移動(dòng)均值的初始化方法。
  • moving_variance_initializer: 移動(dòng)方差的初始化方法。
  • beta_regularizer: 可選的 beta 權(quán)重的正則化方法。
  • gamma_regularizer: 可選的 gamma 權(quán)重的正則化方法。
  • beta_constraint: 可選的 beta 權(quán)重的約束方法。
  • gamma_constraint: 可選的 gamma 權(quán)重的約束方法。

輸入尺寸

可以是任意的。如果將這一層作為模型的第一層, 則需要指定 input_shape 參數(shù) (整數(shù)元組,不包含樣本數(shù)量的維度)。

輸出尺寸

與輸入相同。

總結(jié)

以上是生活随笔為你收集整理的【tensorflow-keras-BatchNormalization】BatchNormalization批量标准化层的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。