Tensorflow 卷积神经网络不';t分类测试集keras

Tensorflow 卷积神经网络不';t分类测试集keras,tensorflow,neural-network,keras,classification,conv-neural-network,Tensorflow,Neural Network,Keras,Classification,Conv Neural Network,我有一个三维卷积神经网络[keras,tensorflow]和晚期阿尔茨海默氏症患者、早期阿尔茨海默氏症患者和健康人(3类)的三维大脑图像。我有324张图片的训练集和74张图片的测试集。当我训练我的CNN时,我有大约65-70%的准确率,但对于测试集,我只有30-40%。当我使用测试数据作为验证数据时,对于训练集,我的准确率也不超过37%,并且损失一直保持在同一水平。无论我改变哪些参数,结果都是一样的。我将准备好的和规范化的数据从.h5文件加载到Python中,输入具有shape(无、90、12

我有一个三维卷积神经网络[keras,tensorflow]和晚期阿尔茨海默氏症患者、早期阿尔茨海默氏症患者和健康人(3类)的三维大脑图像。我有324张图片的训练集和74张图片的测试集。当我训练我的CNN时,我有大约65-70%的准确率,但对于测试集,我只有30-40%。当我使用测试数据作为验证数据时,对于训练集,我的准确率也不超过37%,并且损失一直保持在同一水平。无论我改变哪些参数,结果都是一样的。我将准备好的和规范化的数据从.h5文件加载到Python中,输入具有shape(无、90、120、80、1)。我不知道什么地方出了问题,我检查了很多次代码,似乎一切都是正确的

我的CNN有4个conv3D层,3个最大池,激活:relu和batch_规范化,3个密集层和辍学,softmax


如果你的训练数据只有65/70%的准确率,这表明你的神经网络没有正确收敛,我将不胜感激。如果结构足够复杂,您的网络应该至少能够过度拟合训练数据,方法是有效地学习对小输入样本的输出进行硬编码。听上去,你的结构已经够复杂了

首先要尝试的是将学习率降低10倍,并关闭验证/提前停止/正常化/正规化以及任何其他防止过度拟合的方法。然后冲洗,重复-更多的迭代,每一次都将LR减少10倍-直到您可以过度拟合训练数据,使其接近训练数据的100%

然后,你可以采取适当的提前停止、辍学、正常化、正规化等措施,以防止过度适应你知道有效的学习率


如果丢弃LR甚至不会过度匹配LR,无论LR有多小,那么您的NN结构存在一些问题。

可能您的测试集非常有偏差。您为测试集选择的特定案例太多。由于您的数据很小,这种情况并不罕见。检查您的测试数据和列车数据在健康/早期/高级情况下的比例是否相似。数据比例相似:/谢谢!我试试看。我的准确率确实很低,但我知道我的数据很复杂,我不知道我是否能达到85%的准确率。现在我想要的是我的CNN工作(这意味着测试集至少有60-70%)。