我有一个关于咖啡的问题,但可能是关于CNN和深度学习的教学过程更普遍的问题。
基本上,问题是我一直在使用NIH胸部X射线样本数据集(包含5606张图像)测试多种架构。我将数据提取到5个.h5
文件中,每个文件1000张图像,并将它们的大小调整为224x224。我省略了3个通道的图像以保持一致(因为它们大多数是灰度的)。所以我的输入形状是(batch_size, 1, 224, 224)
。当我用0 - no finding, 1 - any finding
标记图像时,这只是二进制分类。
我决定使用MobileNet
架构,只是将最后一层的输出大小更改为2。
我的问题是,每次我运行培训过程时,似乎培训过程都会陷入一个循环。网络只是围绕一组值进行损耗和准确性循环。我尝试更改求解器参数,批处理大小,更改网络体系结构,但始终是相同的-精确值只是有所不同。
这是我的训练日志的要点,其中包含我的网络体系结构,求解器文件和整个输出:
https://gist.github.com/ouadakarim/34ac5744fadfd63a25c806b651bba0fb
为了更好地说明我的问题,以下是上述日志的图表,其中包含损失和准确性:
如您所见,它总是围绕相同的值循环。我不确定可能是什么问题,但是我有一些想法:
1)我的样本集包含5000张图像,不足以正确教授网络。
2)求解器的配置不正确(学习率)。
3)网络体系结构太复杂了。
我一开始也尝试使用简单的网络体系结构,但结果更糟。
对于任何建议,我将不胜感激。
答案 0 :(得分:3)
我发现一个错误:
您设置:
use_global_stats: true
在您的批处理规范层中
但是在训练中那是错误的
您应该将其设置为false
或只是删除所有use_global_stats: true
在没有声明的情况下,caffe将使用默认值:
(use_global_stats: true
在测试中
和
use_global_stats: false
进行培训)