Caffe CNN训练过程陷入循环
Caffe CNN training process falls into a loop
我有一个关于 caffe 的问题,但它可能是一个关于 CNN 和深度学习的教学过程的更普遍的问题。
基本上,问题是我一直在使用包含 5606 张图像的 NIH 胸部 X 射线样本数据集测试多个架构。我将数据提取到 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)网络架构太复杂
起初我也尝试过使用简单的网络架构,但结果更糟。
如果有任何建议,我将不胜感激。
我注意到一个错误:
你设置:
use_global_stats: true
在你的批量规范层
但在训练中这是错误的
你应该设置它 false
或者干脆删除所有 use_global_stats: true
无需声明,caffe 将使用默认值:
(use_global_stats: true
在测试中
和
use_global_stats: false
在训练中)
我有一个关于 caffe 的问题,但它可能是一个关于 CNN 和深度学习的教学过程的更普遍的问题。
基本上,问题是我一直在使用包含 5606 张图像的 NIH 胸部 X 射线样本数据集测试多个架构。我将数据提取到 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)网络架构太复杂
起初我也尝试过使用简单的网络架构,但结果更糟。
如果有任何建议,我将不胜感激。
我注意到一个错误:
你设置:
use_global_stats: true
在你的批量规范层
但在训练中这是错误的
你应该设置它 false
或者干脆删除所有 use_global_stats: true
无需声明,caffe 将使用默认值:
(use_global_stats: true
在测试中
和
use_global_stats: false
在训练中)