2017-05-21 18 views
0

私はシリーズ予測のための簡単なKerasモデルを使用しています。Kerasバッチの正規化/標準化を無効にする

私はシリーズ全体にわたって正規化された入力を供給しています。

モデルの予測精度は、トレーニング中に正しいと思われます。しかし、model.predict()関数の出力をプロットすると、出力が何らかのスケーリングを受けていることがわかります。それはある種の標準化/標準化タイプのスケーリングのようです。

トレーニングでバッチサイズを変更すると結果が変わります。バッチサイズを入力セットのサイズに設定しようとしました。その結果、シリーズ全体のトレーニングが1回のバッチで実行され、結果が改善されましたが、それはまだスケーリングされています。

これは、入力バッチごとの正規化または出力正規化のどちらかと関係があると私は想定しています。私のモデルにはBatchNormalizationのレイヤーがありません。

Kerasの入出力の標準正規化/標準化を無効にする方法はありますか(このデフォルト動作はありますか?)

私はTensorflowバックエンドとTensorflow 1.1でKeras 2を使用しています。

+0

最終アクティベートレイヤーは何ですか?シグモイド? Tanh?それらは常に正規化された結果を出力します。 (それはお勧めです。訓練のために期待される結果を正常化する方が良い) –

+0

最後の層の出力を正規化する必要があります。私は 'シグモイド'活性化を使用しています。それは問題ではありません。入力がバッチごとに正規化/標準化されている(または出力が何らかのスケールで調整されている)と考えていますが、これをオフにする方法はないようです。 –

+0

なぜ結果がスケールされていると思いますか?あなたの "基本的な真理/期待される結果の配列"は何ですか?トレーニングの正確さは大丈夫ですが、検証データの正確さは保証されていませんか? –

答えて

1

KerasにはBNやその他の正規化が暗黙的に挿入されません。

あなたは他の何かを観察する必要があります。

関連する問題