DNN模型 - 奇怪的结果。火车/测试和Kaggle的“损失”结果不同

时间:2017-07-12 17:04:24

标签: neural-network deep-learning keras theano conv-neural-network

我训练了一个简单的DNN模型 - 使用带有Theano后端的Keras,具有:  2 *(3x3转换层,2x2最大池,15%丢失),  96-FC层,  softmax在最后一层激活,  优化者:亚当。 目标是对6个班级进行分类。 我有一个数据集,包括116000平均分布在所有类图像中。 经过14个时代 - 验证结果很棒: 损失:0.1,测试数据的准确率为92% - 在培训期间,我的培训和验证数据也有类似的结果。

该任务仅用于学习目的 - 在Kaggle网站中定义。他们希望获得最小的对数丢失结果。当我在那里上传我的预测时 - 计算的损失非常高(> 2)

你有什么建议吗?

代表网络的一些代码以及我如何使用它:

1。输入:

116000尺寸为160x160的图像

2。模型

model = Sequential()

model.add(Convolution2D(64, 3, 3, activation='relu', input_shape=(1, 160, 160)))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.15))

model.add(Convolution2D(128, 3, 3, activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.15))

model.add(Flatten())
model.add(Dense(96, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(len(classes), activation='softmax'))

3。编译和适合:

model.compile(loss='categorical_crossentropy',#categorical_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

model.fit(np.array(trainData[0]), np.array(trainData[1]), 
          batch_size=13, nb_epoch=14, verbose=1, shuffle=True, callbacks=callbacks_list, validation_data = (np.array(validationData[0]), np.array(validationData[1])))

4。使用一组新样本进行测试:

scores = model.evaluate(np.array(testData[0]), np.array(testData[1]), verbose=1)

0 个答案:

没有答案