python - Keras 交叉验证精度在每个 epoch 后稳定在 (1/output_classes)

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

我目前正在尝试训练一个用于语音识别的 DNN,其中包含大量说话者,每个说话者都有自己的标签(output_classes = 说话者总数)。 我的数据库现在有 300 个演讲者,Keras 模型摘要如下:

1240 (input size) --> 256 hidden --> 256 hidden --> 256 hidden (0.5 dropout) --> 256 (0.5 dropout) --> 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。不过,训练和交叉验证损失在每个时期之后都在下降。 有什么建议吗?

最佳答案

所以,事实证明,由于我的数据库太小,我的网络严重过度拟合。添加更多数据和正则化最终有助于获得不错的准确性。

关于python - Keras 交叉验证精度在每个 epoch 后稳定在 (1/output_classes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47214731/

相关文章:

python - 在 Python 中通过管道传输到脚本时无法启动交互式程序

machine-learning - NaiveBayes 分类器 : Do I have to concatenate all files of one class?

python - 如何获取 Keras 神经网络中的训练和开发错误?

python - 神经网络损失函数和权重矩阵不匹配

python - 如何在 Theano 上启用并行处理?无 GPU

python - 可变数量嵌套循环的迭代器

python - 如何可逆地将 Pandas 数据帧存储到磁盘或从磁盘加载

java - Hadoop Streaming简单作业失败错误python

python - Tensorflow v1.14 中的梯度裁剪错误

machine-learning - 卷积神经网络的识别类型