2017-11-22 11 views
0

自分の6600トレーニングイメージの数字(0〜9)、18200トレーニングイメージセット(英語〜a)、18200トレーニングイメージ文字(A〜Z)。私のCNNモデルでaccとコストが安定していません

私は最初にCNNモデルでトレーニングしましたが、うまくいきました。

ここは私のCNNモデルの形成です。

learning rate = 0.0001 

28X28 input image 
11X11 output label.(0~9(5500 training sets) and none digit ex)a~z, A~Z(1100 training sets)) 

CONV1 
filter(3,3,1,32)->relu->maxpool(1,2,2,1) and stride(1,2,2,1) 

CONV2 
filter(3,3,32,64)->relu->maxpool(1,2,2,1) and stride(1,2,2,1) 

CONV3 
filter(3,3,64,128)->relu->maxpool(1,2,2,1) and stride(1,2,2,1)->reshape(-1, 128*4*4) 

FC1 
input - (128*4*4) 
relu  
output - (625) 

FC2 
input - (625) 
relu 
output - (11) 

its acc : 
![enter image description here][1] 

its cost : ![enter image description here][2] 

このCNNモデルはよく訓練されたと思います。

私は自分の英語の下位文字(a〜z)で同じCNNモデルを訓練しましたが、問題が発生しました。桁CNNモデルと一つだけ違いがあり、それがFC2層出力

である(27)

ここ

は、ACCで、英語の低い文字

ACCで訓練されたCNNモデルのコスト:enter image description here

コスト:enter image description here

数字CNNモデルと比較して、accとコストの重大な変動する状況があります

私はこのCNNモデルをもっと安定させたいと思っています。あなたが興味を持っているなら、私に助言をくれますか?

私はCNNモデルの形成が理由だと思いますが、問題は

答えて

0

は個人的に、私は英語の小文字の文字( - Z)の変動が私には、通常に見えると思います具体的に何であるか説明することはできません。数字データセットと比較すると、変動はデータセット内に存在するクラスの数の増加に起因する可能性が最も高いです。数字データセットは10クラスしかありませんが、英語の小文字は26クラスです。したがって、英語の小文字のデータセットの訓練中に、モデルが以前に見たことのない例で出現する可能性がより高いので、変動がより多いことは論理的である。

変動を減らす方法は、各トレーニングステップでさらに多くの例を見ながらモデルがその重みを調整できるように、バッチサイズを増やすことです。

私の答えには自信がありませんが、これは私が1年以上トレーニングCNNで見たものです。それがあなたのモデルでも機能するかどうかを楽しみにしています。

+0

あなたの答えは正しいです。ありがとう:) –

+0

バッチサイズを100から300に変更し、各ステップの後に端末のコストとアクセスログを印刷しましたが、変動はありません。テンソルボードスカラーグラフ(accとコスト)に変動があります。なぜそれが起こるのかわかりません、あなたはこの状況を説明できますか? –

+0

私はあなたの質問が「なぜ印刷された値とテンソルボードの値に違いがあるのか​​」と仮定しています。 おそらく最初にチェックするべきことは、 'name'と' name_scope'変数に間違いがないことです。間違いがない場合は別の質問を投稿してください。私はURLを入力してから見てください:) 私の答えが正しい場合は、正しいものとしてマークしてください。どうもありがとうございました。 –

関連する問題