Tensorflow Batch normalization函數


Tensorflow Batch normalization函數

覺得有用的話,歡迎一起討論相互學習~

我的微博我的github我的B站

參考文獻
stackoverflow上tensorflow實現BN的不同函數的解釋

最近在運行程序時需要使用到Batch normalization方法,雖然網上有很多資料,但是說法各異而且沒有完全准確的,很多使用了Tensorflow中TF.slim高層封裝,自己不是很明白。現在我將自己搜集的資料進行整理,便於以后查閱。

關於Batch normalization

Tensorflow中實現BN算法的各種函數

  • 在tensorflow中給出了幾種實現batch-norm的方法:
  • tf.nn.batch_normalization 是一個低級的操作函數,調用者需要自己處理張量的平均值和方差。
  • tf.nn.fused_batch_norm 是另一個低級的操作函數,和前者十分相似。不同之處在於它針對四維輸入張量進行了優化,這是卷積神經網絡中的常見情況。而前者tf.nn.batch_normalization則接受任何等級大於1的張量。
  • tf.layers.batch_normalization 是對先前操作的高級包裝。最大的不同在於它負責創建和管理運行張量的均值和方差,並盡可能地調用快速融合運算。通常,這個函數應該是你的默認選擇。
  • tf.contrib.layers.batch_normbatch norm 的早期實現,其升級的核心API版本為(tf.layers.batch_normalization)。不推薦使用它,因為它可能會在未來的版本中丟失。
  • tf.nn.batch_norm_with_global_normalization 是另一個被棄用的操作,現在這個函數會委托給tf.nn.batch_normalization執行,在未來這個函數會被放棄。
  • keras.layers.BatchNormalization 是BN算法的Keras實現,這個函數在后端會調用Tensorflow中的tf.nn.batch_normalization函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM