我有一个三维复杂的神经网络角点,tensorflow和3D脑图像的人晚期阿尔茨海默氏症,早期阿尔茨海默氏症和健康人(3类)。我有324张图像的训练集和74张图像的测试集。当我训练我的CNN时,我有大约65-70%的准确率,但是对于测试集,我只有30-40%。当我使用测试数据作为验证数据时,对于训练集,我的准确率也不超过37%,并且损失始终保持在相同的水平。不管我改变了哪些参数,结果都是一样的。我将准备好的和规范化的数据从.h5文件加载到Python中,输入具有形状(None,90,120,80,1)。我不知道可能出了什么问题,我检查了很多次代码,一切似乎都是正确的。
我的CNN有4个conv3D层,3个最大池,激活:relu和batch_normalizations,3个密集层和下拉,softmax。
我很感激任何帮助或想法。
发布于 2017-10-08 07:32:25
如果你的训练数据只有65/70%的准确性,那就说明你的神经网络没有很好的收敛。如果结构足够复杂,您的网络至少应该能够对培训数据进行过度拟合,方法是有效地学习从小输入样本中硬编码输出。听起来,你的结构已经够复杂了。
第一件事是将学习率降低10倍,并关闭验证/早期停止/正常化/规范以及防止过度适应的任何其他方法。然后漂洗,重复-更多的迭代,每一次减少10倍的LR -直到你可以把训练数据调整到训练数据接近100%的地方。
然后,你可以工作在适当的早停,辍学,正常化,规范等,以防止过度适应你知道的学习速度是有效的。
如果丢弃LR甚至不太适合,不管LR多么小,那么您的NN结构就会有一些问题。
https://stackoverflow.com/questions/46620823
复制相似问题