keras.layers.GaussianNoiseでノイズが追加されない

Jupyter Notebookでkeras.layers.GaussianNoiseを使ってみた所、なんのnoiseも付与されなかったので調べてみた。

まずは公式ドキュメント。

tf.keras.layers.GaussianNoise  |  TensorFlow Core v2.7.0
Apply additive zero-centered Gaussian noise.

Call arguments:
inputs: Input tensor (of any rank).
training: Python boolean indicating whether the layer should behave in training mode (adding noise) or in inference mode (doing nothing).

trainの時はadding noiseで、inferenceの時はdoing nothingという挙動になるらしい。

model.trainしたら効果があるが、Jupyter Notebookでお試し動作をしている分には効果が確認できない。

明示的にtrainingにする方法がないのか?今度はkerasの公式サイトを見てみる。

バックエンド - Keras Documentation

set_learning_phase
keras.backend.set_learning_phase(value)
値を固定化するための学習フェーズをセットします.

バックエンドを学習フェーズで動作させる関数があった。

tf.keras.backend.set_learning_phase(1)

これでJupyter NotebookでGaussianNoiseの効果を確かめることが出来るようになった。

参考

Keras GaussianNoise layer no effect?
I wanted to add some Gaussian noise to my Images in my CNN with the keras's functional API, but while testing some different stddev values, I noticed that the G...

コメント

タイトルとURLをコピーしました