1樓:HelloSeeing
slim中有slim.batch_norm函式可以直接呼叫,絕大部分層定義函式(比如slim.conv2d, slim.
maxpool_2d)都有normalizer_fn這個引數,可以用arg_scope快速整理所有的這些層預設使用bn
2樓:
What is right batch normalization function in Tensorflow?
這個Stack Overflow回答詳解了目前tensorflow中所有的batch normalization用法,其中推薦使用的high-level API是tf.layers.batch_normalization。
如果想用low-level API自己寫函式,則用tf.nn.batch_normalization即可。
3樓:快跑啊小女孩
看書澆花曬太陽 的資料裡邊很詳細偷懶就直接tf.layers.batch_normalization 訓練時候引數training=True 加上with control_dependencies 就自動儲存了移動mean和variance test的時候training=False全自動使用
4樓:yinnxinn
設定batch_norm函式中的引數updates_collections值為None
updates_collections: Collections to collect the update ops for computation. The updates_ops need to be executed with the train_op.
If None, a control dependency would be added to make sure the updates are computed in place.
或者用樓上兄弟的那個了
5樓:clks-wzz
使用slim.batch_norm(input,is_training=True)
還要加下面這幾句話。
不知道說的對不對,如果有錯誤,請大家指正。
6樓:ho點點
首先,version 1有問題。
其次,contrib.layers和slim裡的bn是完全一樣的。看看slim的__init__。
再次,于洋的train_phase是是否在training的tag。
最後,slim的bn肯定沒問題,但不是直接呼叫下就完事了,你若只呼叫下,會發現acc上下起伏,連綿不絕。。。moving_mean 和 moving_variance是需要更新的,利用control_dependencies保證每次訓練前更新一下。所以思路上我覺得于洋的回答可用。
若要直接呼叫slim的bn,你的update_op要和train_op保證乙個dependency。
最最後,多看tf的官方文件,bn怎麼用,寫的還是很清楚的。
7樓:
martin-gorner/tensorflow-mnist-tutorial, 這裡有使用batch normalization的示例
在VS code中 使用Jupyter notebook如何拆分cell?
jerry hao 這個問題的答案是這樣的 vscode從1.46版開始引進了一種叫Notebook的文件,主要是用來處理github的Issue,他看起來很像Jupyter Notebook,但後者目前是通過vscode python外掛程式來支援的。你說的那個拆分單元格是為Notebook文件用...
怎樣在scala正規表示式提取器中使用小括號?
夏梓耀 scala valD 0 1 9 d d rD scala.util.matching.Regex 0 1 9 d d scala valD a b 1.2 a String 1 b String 2 target Any Option List String target match pr...
該怎麼在Mathematica中使用牛頓迭代法呢?
cvgmt 如果還是用 For,While,Do 這些過程式手法,那還是別用 Mathematica 了。因為不會有進步的。下面是其中一種最基本的做法。f x 2 x 2 5 x 1 NestList f f 0.20 四零七 牛頓法有很多變種,這裡只用最基礎的牛頓法。要求解 基本步驟就是先假設乙個...