2017-08-11 50 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)提高您的学习率。此外,等待更多的迭代(时代),看看它是否有所改善。如果没有,你可以尝试减少退出。另外,如果您还没有完成输入数据,我会建议您对输入数据进行标准化。