2017-08-11 14 views
2

私はケラスと深いlearnin.When私はサンプルの基本的なモデルを試して、私はそれに合って、私のモデルのログの損失は常に同じです。 17939個のサンプルのKerasのlog_lossエラーは同じ

model = Sequential() 
model.add(Convolution2D(32, 3, 3, border_mode='same', init='he_normal', 
         input_shape=(color_type, img_rows, img_cols))) 
model.add(MaxPooling2D(pool_size=(2, 2), dim_ordering="th")) 
model.add(Dropout(0.5)) 
model.add(Convolution2D(64, 3, 3, border_mode='same', init='he_normal')) 
model.add(MaxPooling2D(pool_size=(2, 2), dim_ordering="th")) #this part is wrong 
model.add(Dropout(0.5)) 

model.add(Convolution2D(128, 3, 3, border_mode='same', init='he_normal')) 
model.add(MaxPooling2D(pool_size=(2, 2), dim_ordering="th")) 
model.add(Dropout(0.5)) 

model.add(Flatten()) 
model.add(Dense(10)) 
model.add(Activation('softmax')) 

model.compile(Adam(lr=1e-3), loss='categorical_crossentropy') 


model.fit(x_train, y_train, batch_size=64, nb_epoch=200, 
       verbose=1, validation_data=(x_valid,y_valid)) 

列車は、4485のサンプル

に検証

エポック1/200 17939分の17939 [===================== ========= - 8秒 - 損失:99.8137 - acc:0.3096 - val_loss:99.9626 - val_acc:0.0000e + 00

Epoch 2/200 17939/17939 [====== ======================== - 8秒 - 損失:99.8135 - acc:0.2864 - val_loss:99.9626 - val_acc:0.0000e + 00

Epoch 3/200 17939/17939 [==============] - 8秒間 - 損失:99.8135 - acc:0.3120 - val_loss:99.9626 - val_acc:1.0000

エポック4/200 17939/17939 [=============] - 10秒 - ロス:99.8135 - ACC:0.3315 - val_loss:99.9626 - val_acc:1.0000

紀元200分の5 17939分の17939 [===================== =========] - 10S - ロス:99.8138 - ACC:0.3435 - val_loss:99.9626 - val_acc:0.4620

..

...

このようになります

私は間違っている部分を知っていますか?

+0

ネットワークアーキテクチャや解決したい問題などの詳細情報を提供する必要があります。 –

+0

あなたの問題は10種類あります。 –

+0

@matiasValdengroは、ネットワーク全体のコードを追加する必要があることを意味します。すべての密なレイヤー、model.compile、おそらくはデータのサンプル – DJK

答えて

2

このような動作の理由の1つは、学習率が小さすぎることがあります。 Adam(lr=1e-2)またはAdam(lr=1e-1)を使用して学習率を上げてください。また、より多くの反復(エポック)を待って、それが改善するかどうかを確認してください。そうでない場合、ドロップアウトを減らそうとするかもしれません。また、まだ入力データを正規化していない場合は、入力データを正規化することをお勧めします。

関連する問題