Keras交叉验证准确度在每个时期之后稳定在(1 / output_classes)

时间:2017-11-10 02:25:23

标签: python machine-learning neural-network keras keras-2

我目前正在尝试使用大量扬声器训练DNN进行语音识别,每个扬声器都有自己的标签(output_classes =扬声器总数)。 我的数据库现在有300个发言人,Keras模型摘要如下:

  

1240(输入大小) - > 256隐藏 - > 256隐藏 - > 256隐藏(0.5辍学) - > 256(0.5辍学) - > Softmax(300)

我正在分批提供数据(每个演讲者数据=一批)并使用以下优化器:

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

fit_generator如下:

model.fit_generator(
    trainGen(i=0),
    steps_per_epoch=num_class,
    epochs=500,
    validation_data=(x_test, y_test))

其中trainGen是我的生成器函数

在训练时,交叉验证的准确性总是稳定在0.0033,即1/300。然而,培训和交叉验证损失在每个时代之后都在下降。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

所以,事实证明我的网络太大了,因为我的数据库太小了。添加更多数据和正规化最终有助于获得良好的准确性。