2017-02-24 3 views
1

私は1つのサンプルだけで構成されるトレーニングデータにモデルをあてすぎようとしています。トレーニングの精度は1.00になります。しかし、同じ単一トレーニング入力サンプルで構成されたテストデータの出力を予測すると、結果は正確ではありません。このモデルは100エポックで訓練されており、損失は1e-4である。 エラーの原因になるものは何ですか?私のモデルが単一のサンプルのトレーニングデータにあふれています

+1

ようこそStackOverflow。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。 MCVEコードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。 – Prune

+0

コードには明らかに問題があります。サンプルxでaccが1.0で、サンプルxを予測する場合は、もちろん正しいクラスが表示されます。しかし、ええ、プルーンの推薦に従ってください。 – sascha

+0

トレーニングセットに含まれている場合は、「テストデータ」と呼ぶべきではありません。テストセットとトレーニングセットは分離していなければなりません。単に「トレーニングデータ」と呼んでください。 –

答えて

1

あなたの投稿のコメントに記載されているように、詳細を最初に提供しなければ具体的なアドバイスはできません。

一般的に言って、(あなたのケースで一つの画像を)小さなバッチを過剰適合にあなたのアプローチは、すなわち、3つの健全性チェックを提供する本質的には次のとおりです。

  1. バックプロパゲーションが
  2. 重みの更新を機能している彼らのやっています仕事
  3. スタンフォードでCS231nコースの講義5にアンドレイKarpathyによって指摘されたよう学習率が大き

の正しい順序である - "if you can't overfit on a tiny batch size, things are definitely broken"

これは、あなたの説明に従えば、実装が間違っていることを意味します。上記の3つのポイントのそれぞれを確認することから始めます。たとえば、いくつかの異なるイメージを選択するか、1つのイメージではなく5つのイメージのbtachサイズを選択して、テストを何とか変更します。 predict functionを修正することもできます。なぜなら、トレーニング中にエラーが発生していて、妥当性が確認されていれば、間違いなく間違いがあるからです。

関連する問題