为什么在训练过程中损失从头开始爆炸? -Tensorflow对象检测模型

时间:2019-11-21 09:53:34

标签: tensorflow deep-learning object-detection object-detection-api

首先,我想指出的是,我熟悉转学的好处。此外,我能够从数据集中的“ modelzoo”中训练出预训练模型。但是出于研究目的,我想从头开始训练我的模型而无需进行转移学习。

我想从tensorsflow的Object Detection API到我的数据集采用Faster-RCNN Resnet 101实现。如果我使用一种预训练模型,则训练会按预期进行,并且损失始终在“正常”范围内(从不高于约6)。但是,如果我不使用转移学习,则损失会非常频繁地跳跃以达到高值(约80,000,000),但是在这些值之间,损失在正常范围内。除此之外,我在TensorBoard中看不到任何关于网络的预测。似乎网络根本没有做出任何预测。我唯一更改的是注释掉model.config文件中的这两行:

 # fine_tune_checkpoint: 'path'
 # from_detection_checkpoint: true

我尝试了很多事情来找到原因:更改了优化器,更改了学习率,使用了梯度裁剪,更改了初始化器,并使用了不同的机器进行训练,但没有任何帮助。此外,我还检查了label_map和记录文件。为了确保这些文件正确无误,我通过使用pascal voc数据集,用于从api创建记录和标签映射的脚本重做了上述步骤,但是即使使用了对象检测API中的这段代码,也没有进行任何代码更改,但丢失了爆炸(Tensorflow Object Detection API own inputs)。

0 个答案:

没有答案