Tensorflow Batch normalization函數
阿新 • • 發佈:2018-03-14
最大 解釋 batch tails csdn layer 出了 font .net
Tensorflow Batch normalization函數
覺得有用的話,歡迎一起討論相互學習~Follow Me
參考文獻
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_norm
- tf.nn.batch_norm_with_global_normalization 是另一個被棄用的操作,現在這個函數會委托給tf.nn.batch_normalization執行,在未來這個函數會被放棄。
- keras.layers.BatchNormalization 是BN算法的Keras實現,這個函數在後端會調用Tensorflow中的tf.nn.batch_normalization函數。
Tensorflow Batch normalization函數