[実現したいこと]
訳あってMobileNet_V1をCで実装したい。convolution層,point_convolution層,dw_convolution層等の層は問題なく実装できそうなのだが、当モデルは学習時にBatchNormalization層を通しているので推論時にも同様に入力を正規化する必要があるのでバッチ正規化層を実装したいと考えている。
[わかっていること]
ここでどのように正規化するのかということで、調べてみたところどうやら学習中にバッチ毎に正規化するための平均と標準偏差が決定されており、学習時はバッチ毎に決定されたそれら二つのパラメータを用いて入力を正規化するとのこと。
参考にしたサイトの一つ : https://qiita.com/t-tkd3a/items/14950dbf55f7a3095600
[実現のために知りたいこと]
推論時のバッチ正規化層では入力をどのように正規化しているのか知りたい。推論時(つまりテスト時)には入力はバッチでは来ないはずであり1枚の画像が入力されてテストが行われるはず。学習時ではバッチ毎に決定した平均と標準偏差を用いて各バッチの入力を正規化するのに対して、推論時はどういったパラメータを用いて中間入出力の値を正規化するのか知りたい。
自分の予想では学習データ全体の平均と標準偏差を用いて正規化するのだとふんでいるのだがいまいち確証が持てないので手詰まりになっている。
またPyTorchを用いて学習を行ったのでPyTorchでどのように学習後のモデルから学習によって決定された平均や標準偏差を抽出するか。ということも知りたいです。
どなたか詳しい方がいらっしゃいましたらご教授頂けると幸いです。
すみませんがよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/29 04:12
2020/08/29 04:16
2020/08/30 16:33