2017-08-11 30 views
2

我是新來的keras和深度learnin.When我創建一個示例基本模型,我適合它和我的模型的日誌損失總是相同的。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)) 

上17939個樣品列車,驗證在4485個樣品

曆元1/200 17939分之17939[===================== =========] - 787-8 - 損失:99.8137 - ACC:0.3096 - val_loss:99.9626 - val_acc:0.0000E + 00

時代二百分之二 17939分之17939[====== ========================] - 8s - 損失:99.8135 - acc:0.2864 - val_loss:99.9626 - val_acc:0.0000e + 00

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

Epoch 4/200 17939/17939 [==============================] - 10s - 損失:99.8135 - acc:0.3315 - val_loss:99.9626 - val_acc:1.0000

Epoch 5/200 17939/17939 [===================== =========] - 第10號 - 損失:99.8138 - ACC:0.3435 - val_loss:99.9626 - val_acc:0.4620

..

...

它是這樣的

你知道我做錯了嗎?

+0

您需要提供更多信息,例如網絡體系結構和您想要解決的問題。 –

+0

okey i edditted,我的問題有10個不同的類 –

+0

@matiasValdengro意味着你需要爲你的整個網絡添加代碼。你所有的密集層,model.compile,甚至可能是數據的一個樣本 – DJK

回答

2

此類行爲的一個原因可能是學習率太低。嘗試使用Adam(lr=1e-2)Adam(lr=1e-1)提高您的學習率。此外,等待更多的迭代(時代),看看它是否有所改善。如果沒有,你可以嘗試減少退出。另外,如果您還沒有完成輸入數據,我會建議您對輸入數據進行標準化。