最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

批標準化層 tf.keras.layers.Batchnormalization()解析

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

批標準化層 tf.keras.layers.Batchnormalization()

tf.keras.layers.Batchnormalization()

重要參數(shù):

  • training:布爾值,指示圖層應在訓練模式還是在推理模式下運行。
  • training=True:該圖層將使用當前批輸入的均值和方差對其輸入進行標準化。
  • training=False:該層將使用在訓練期間學習的移動統(tǒng)計數(shù)據(jù)的均值和方差來標準化其輸入。

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

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

批標準化的實現(xiàn)過程

  • 求每一個訓練批次數(shù)據(jù)的均值
  • 求每一個訓練批次數(shù)據(jù)的方差
  • 數(shù)據(jù)進行標準化
  • 訓練參數(shù)γ,β
  • 輸出y通過γ與β的線性變換得到原來的數(shù)值

在訓練的正向傳播中,不會改變當前輸出,只記錄下γ與β。在反向傳播的時候,根據(jù)求得的γ與β通過鏈式求導方式,求出學習速率以至改變權值。

對于預測階段時所使用的均值和方差,其實也是來源于訓練集。比如我們在模型訓練時我們就記錄下每個batch下的均值和方差,待訓練完畢后,我們求整個訓練樣本的均值和方差期望值,作為我們進行預測時進行BN的的均值和方差。

批標準化的使用位置

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

# 放在非線性激活函數(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使用細節(jié)

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

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

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

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

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

重點

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

注意:freeze mode和inference mode是兩個概念。

但是,在BatchNormalization層中,如果把某一層BatchNormalization層設置為trainable=False,那么這一層BatchNormalization層將一inference mode運行,也就是說(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é)

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

相關文章

  • python如何把嵌套列表轉(zhuǎn)變成普通列表

    python如何把嵌套列表轉(zhuǎn)變成普通列表

    這篇文章主要為大家詳細介紹了python如何把嵌套列表轉(zhuǎn)變成普通列表,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 基于Python列表解析(列表推導式)

    基于Python列表解析(列表推導式)

    今天小編就為大家分享一篇基于Python列表解析(列表推導式),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python中sys模塊常用方法與變量實例探究

    Python中sys模塊常用方法與變量實例探究

    sys?模塊是 Python 標準庫中的一個核心模塊,提供了與解釋器進行交互的功能,了解?sys?模塊的方法和變量對于更有效地管理和調(diào)試 Python 程序至關重要,本文將深入探討?sys?模塊的常用方法和變量,通過詳細的示例代碼,幫助大家更全面地了解并靈活運用這一關鍵模塊
    2024-01-01
  • Python 拷貝對象(深拷貝deepcopy與淺拷貝copy)

    Python 拷貝對象(深拷貝deepcopy與淺拷貝copy)

    Python中的對象之間賦值時是按引用傳遞的,如果需要拷貝對象,需要使用標準庫中的copy模塊。
    2008-09-09
  • python2和python3應該學哪個(python3.6與python3.7的選擇)

    python2和python3應該學哪個(python3.6與python3.7的選擇)

    許多剛?cè)腴T Python 的朋友都在糾結(jié)的的問題是:我應該選擇學習 python2 還是 python3,Python 3.7 已經(jīng)發(fā)布了,目前Python的用戶,主要使用的版本 應該是 Python3.6 和 Python2.7 ,那么是不是該轉(zhuǎn)到 Python 3.7 呢
    2019-10-10
  • Python必備技巧之集合Set的使用

    Python必備技巧之集合Set的使用

    在數(shù)學中,對集合的嚴格定義可能是抽象的且難以掌握。但實際上可以將集合簡單地認為是定義明確的不同對象的集合,通常稱為元素或成員。Python 提供了一個內(nèi)置的集合類型來將對象分組到一個集合中,快跟隨小編一起學習一下吧
    2022-03-03
  • 基于python實現(xiàn)上傳文件到OSS代碼實例

    基于python實現(xiàn)上傳文件到OSS代碼實例

    這篇文章主要介紹了基于python實現(xiàn)上傳文件到OSS,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Matlab中如何實現(xiàn)將長字符串換行寫

    Matlab中如何實現(xiàn)將長字符串換行寫

    這篇文章主要介紹了Matlab中如何實現(xiàn)將長字符串換行寫問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Pytorch如何指定device(cuda or cpu)

    Pytorch如何指定device(cuda or cpu)

    這篇文章主要介紹了Pytorch如何指定device(cuda or cpu)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Python語言異常處理測試過程解析

    Python語言異常處理測試過程解析

    這篇文章主要介紹了Python語言異常處理測試過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01

最新評論

九龙县| 千阳县| 垦利县| 大冶市| 唐山市| 台北县| 大安市| 保靖县| 弋阳县| 陵川县| 衡阳市| 江孜县| 平乡县| 广州市| 安溪县| 文昌市| 都江堰市| 鄂托克前旗| 朔州市| 杨浦区| 嵊泗县| 舒城县| 进贤县| 瑞昌市| 保亭| 上栗县| 托克托县| 益阳市| 东海县| 马尔康县| 邵阳市| 石嘴山市| 天峨县| 左权县| 彭山县| 莆田市| 固阳县| 泾川县| 五华县| 勐海县| 保德县|