欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

批標(biāo)準(zhǔn)化層 tf.keras.layers.Batchnormalization()解析

 更新時(shí)間:2023年02月21日 16:34:03   作者:壯壯不太胖^QwQ  
這篇文章主要介紹了批標(biāo)準(zhǔn)化層 tf.keras.layers.Batchnormalization(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

批標(biāo)準(zhǔn)化層 tf.keras.layers.Batchnormalization()

tf.keras.layers.Batchnormalization()

重要參數(shù):

  • training:布爾值,指示圖層應(yīng)在訓(xùn)練模式還是在推理模式下運(yùn)行。
  • training=True:該圖層將使用當(dāng)前批輸入的均值和方差對(duì)其輸入進(jìn)行標(biāo)準(zhǔn)化。
  • training=False:該層將使用在訓(xùn)練期間學(xué)習(xí)的移動(dòng)統(tǒng)計(jì)數(shù)據(jù)的均值和方差來(lái)標(biāo)準(zhǔn)化其輸入。

BatchNormalization 廣泛用于 Keras 內(nèi)置的許多高級(jí)卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),比如 ResNet50、Inception V3 和 Xception。

BatchNormalization 層通常在卷積層或密集連接層之后使用。

批標(biāo)準(zhǔn)化的實(shí)現(xiàn)過(guò)程

  • 求每一個(gè)訓(xùn)練批次數(shù)據(jù)的均值
  • 求每一個(gè)訓(xùn)練批次數(shù)據(jù)的方差
  • 數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化
  • 訓(xùn)練參數(shù)γ,β
  • 輸出y通過(guò)γ與β的線性變換得到原來(lái)的數(shù)值

在訓(xùn)練的正向傳播中,不會(huì)改變當(dāng)前輸出,只記錄下γ與β。在反向傳播的時(shí)候,根據(jù)求得的γ與β通過(guò)鏈?zhǔn)角髮?dǎo)方式,求出學(xué)習(xí)速率以至改變權(quán)值。

對(duì)于預(yù)測(cè)階段時(shí)所使用的均值和方差,其實(shí)也是來(lái)源于訓(xùn)練集。比如我們?cè)谀P陀?xùn)練時(shí)我們就記錄下每個(gè)batch下的均值和方差,待訓(xùn)練完畢后,我們求整個(gè)訓(xùn)練樣本的均值和方差期望值,作為我們進(jìn)行預(yù)測(cè)時(shí)進(jìn)行BN的的均值和方差。

批標(biāo)準(zhǔn)化的使用位置

原始論文講在CNN中一般應(yīng)作用與非線性激活函數(shù)之前,但是,實(shí)際上放在激活函數(shù)之后效果可能會(huì)更好。

# 放在非線性激活函數(shù)之前
model.add(tf.keras.layers.Conv2D(64, (3, 3)))
model.add(tf.keras.layers.BatchNormalization())
model.add(tf.keras.layers.Activation('relu'))

# 放在激活函數(shù)之后
model.add(tf.keras.layers.Conv2D(64, (3, 3), activation='relu'))
model.add(tf.keras.layers.BatchNormalization())

tf.keras.layers.BatchNormalization使用細(xì)節(jié)

關(guān)于keras中的BatchNormalization使用,官方文檔說(shuō)的足夠詳細(xì)。本文的目的旨在說(shuō)明在BatchNormalization的使用過(guò)程中容易被忽略的細(xì)節(jié)。

在BatchNormalization的Arguments參數(shù)中有trainable屬性;以及在Call arguments參數(shù)中有training。兩個(gè)都是bool類型。第一次看到有兩個(gè)參數(shù)的時(shí)候,我有點(diǎn)懵,為什么需要兩個(gè)?

后來(lái)在查閱資料后發(fā)現(xiàn)了兩者的不同作用。

1,trainable是Argument參數(shù),類似于c++中構(gòu)造函數(shù)的參數(shù)一樣,是構(gòu)建一個(gè)BatchNormalization層時(shí)就需要傳入的,至于它的作用在下面會(huì)講到。

2,training參數(shù)時(shí)Call argument(調(diào)用參數(shù)),是運(yùn)行過(guò)程中需要傳入的,用來(lái)控制模型在那個(gè)模式(train還是interfere)下運(yùn)行。關(guān)于這個(gè)參數(shù),如果使用模型調(diào)用fit()的話,是可以不給的(官方推薦是不給),因?yàn)樵趂it()的時(shí)候,模型會(huì)自己根據(jù)相應(yīng)的階段(是train階段還是inference階段)決定training值,這是由learning——phase機(jī)制實(shí)現(xiàn)的。

重點(diǎn)

關(guān)于trainable=False:如果設(shè)置trainable=False,那么這一層的BatchNormalization層就會(huì)被凍結(jié)(freeze),它的trainable weights(可訓(xùn)練參數(shù))(就是gamma和beta)就不會(huì)被更新。

注意:freeze mode和inference mode是兩個(gè)概念。

但是,在BatchNormalization層中,如果把某一層BatchNormalization層設(shè)置為trainable=False,那么這一層BatchNormalization層將一inference mode運(yùn)行,也就是說(shuō)(meaning that it will use the moving mean and the moving variance to normalize the current batch, rather than using the mean and variance of the current batch).

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用celery和Django處理異步任務(wù)的流程分析

    使用celery和Django處理異步任務(wù)的流程分析

    Celery是 一個(gè)專注于實(shí)時(shí)處理的任務(wù)隊(duì)列,它還支持任務(wù)調(diào)度。 Celery快速,簡(jiǎn)單,高度可用且靈活。這篇文章主要介紹了使用celery和Django處理異步任務(wù)的流程分析,需要的朋友可以參考下
    2020-02-02
  • 使用plt.bar柱狀圖減小柱子之間的間隔問(wèn)題

    使用plt.bar柱狀圖減小柱子之間的間隔問(wèn)題

    這篇文章主要介紹了使用plt.bar柱狀圖減小柱子之間的間隔問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python pandas 如何替換某列的一個(gè)值

    python pandas 如何替換某列的一個(gè)值

    python pandas 如何替換某列的一個(gè)值?今天小編就為大家分享一篇python pandas 實(shí)現(xiàn)替換某列的一個(gè)值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助
    2018-06-06
  • python實(shí)現(xiàn)通過(guò)代理服務(wù)器訪問(wèn)遠(yuǎn)程url的方法

    python實(shí)現(xiàn)通過(guò)代理服務(wù)器訪問(wèn)遠(yuǎn)程url的方法

    這篇文章主要介紹了python實(shí)現(xiàn)通過(guò)代理服務(wù)器訪問(wèn)遠(yuǎn)程url的方法,涉及Python使用urllib模塊操作URL的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 詳解如何減少python內(nèi)存的消耗

    詳解如何減少python內(nèi)存的消耗

    這篇文章主要介紹了詳解如何減少python內(nèi)存的消耗,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python通過(guò)wordcloud庫(kù)實(shí)現(xiàn)將單詞生成詞云

    Python通過(guò)wordcloud庫(kù)實(shí)現(xiàn)將單詞生成詞云

    Python的wordcloud庫(kù)是一個(gè)用于生成詞云的Python包,它可以將一段文本中出現(xiàn)頻率高的單詞按其出現(xiàn)頻率大小以及顏色深淺排列成一個(gè)詞云圖形,從而更好地展示文本中的信息,你可以使用wordcloud庫(kù)來(lái)生成各種類型的詞云,本文就介紹了如何生成心型詞云
    2023-06-06
  • python中l(wèi)ambda與def用法對(duì)比實(shí)例分析

    python中l(wèi)ambda與def用法對(duì)比實(shí)例分析

    這篇文章主要介紹了python中l(wèi)ambda與def用法對(duì)比,實(shí)例分析了lambda與def的區(qū)別與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python小程序編程實(shí)現(xiàn)一鍵自動(dòng)整理文件解壓文件

    Python小程序編程實(shí)現(xiàn)一鍵自動(dòng)整理文件解壓文件

    這篇文章主要為大家介紹了Python小程序編程實(shí)現(xiàn)一鍵自動(dòng)整理文件解壓文件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • python文件數(shù)據(jù)分析治理提取

    python文件數(shù)據(jù)分析治理提取

    這篇文章主要介紹了python文件數(shù)據(jù)分析治理提取,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • keras 多gpu并行運(yùn)行案例

    keras 多gpu并行運(yùn)行案例

    這篇文章主要介紹了keras 多gpu并行運(yùn)行案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06

最新評(píng)論