Resnet 训练 - L2 损失减少,而交叉熵保持在 0.69 左右

Resnet training - L2 loss decreases while cross-entropy stays around 0.69

我正在使用这个 https://github.com/tensorflow/models/tree/master/official/resnet resnet 的官方 tensorflow 实现在我自己的数据集上训练 二元分类器 。我在 imagenet_main.py 中修改了一点点 input_fn 来做我自己的图像加载和预处理。但是经过多次参数调优,我的模型无法正常训练。我只能找到一组参数,让 训练准确率提高到 100%,而验证准确率永远保持在 50% 左右。 该实现使用分段学习率。我尝试了从 0.11e-5 的初始学习率和从 1e-21e-2 的权重衰减=23=]1e-5,验证集上没有收敛。

一个可疑的观察是,在训练过程中,l2 损失缓慢而稳定地减少,而交叉熵非常不愿意减少,保持在 0.69 左右。

知道我可以进一步尝试什么吗?

关于我的数据集和图像预处理,训练数据集大约有 100K 张图像。验证集在 10K 左右。我只是将每个图像的大小调整为 224*224,同时保持宽高比,并在每个通道上减去 127,然后将它们除以 255。

其实@Hua resnet有很多可训练的参数,而且是在1k的image net上训练的类。而你的 data-set 只有两个 类。 resnet 的密集层有 4k 个神经元,结果增加了可训练参数的数量。现在参数的数量与 over-fitting 的风险直接相关。意味着 resnet 模型不适合您的数据,请对 resnet 进行一些更改。尝试减少参数数量。这可能会有所帮助 –