【问题标题】:Tensorflow object detection API loss increases dramaticallyTensorFlow 对象检测 API 损失急剧增加
【发布时间】:2021-10-20 08:25:59
【问题描述】:

我正在使用自己的数据训练 tensorflow 对象检测 API,但由于某种原因,所有损失似乎都飙升了数千步。你可以在这张图上看到:

一开始它应该会下降,但不知何故它会爆炸。

我使用的模型是带有预训练 coco 检查点的 ssd_resnet50_v1_fpn 但此信息可能无关紧要,因为我认为任何模型都会发生这种情况(我已经尝试了 2 个模型,每个模型都尝试了几次,目前所有模型的行为都是相同的我的尝试)。我正在按照本教程 https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html 对其进行训练,因此我使用 model_main_tf2.py 脚本来训练模型。

很奇怪的是,我的一个同事没有这个问题。正如您在此处看到的,他的损失演变似乎很正常:

他为我提供了运行训练所需的所有文件(例如 tf.records、labelmap.txt、pipeline.config 文件、ckpt-0.index 等)。他可能很幸运,而我不是。但是很奇怪,每次他运行它时,他的行为都是正常的,而我没有……至少发生这种情况的几率非常低。

不知道是否重要,但我有 GeForce RTX 3060 Ti,Python:3.9.6,Tensorflow:2.5.0,Cudnn:8.1.1 和 Cuda:11.2 而他拥有 Geforce GTX 1650 Super,Python:3.9.6,Tensorflow:2.5.1,Cudnn:8.1.0 和 Cuda:11.2

知道是什么原因造成的吗?

编辑 1:我重新运行了它,而我的计算机上什么也没做,它运行得很好。它现在显示了预期的行为。我会在正常使用它时重新运行它(也许看视频或其他东西),这是我在最后一次运行时所做的,显示出奇怪的行为,看看这种奇怪的行为是否再次发生。您认为这可能是导致这种行为的原因吗?

【问题讨论】:

    标签: tensorflow object-detection-api python-3.9


    【解决方案1】:

    我也会遇到同样的问题。在不同数量的数千步之后,损失就会爆炸。我也不确定问题的原因。

    在我看来,这可能是 GPU 问题或数据有问题。但那时我应该至少完成一次。如果您在这方面取得任何进展,请告诉我:)

    【讨论】:

    • 感觉学习率跟这个有很大关系。在上面的例子中,我没有改变推荐的学习率,而是改变了批大小(我使用了 2 的批大小,这没有多大意义,但在遇到内存问题之前我不能超过这个值)。如果您将学习率更改为较小的值(基本上我将批量大小除以 64,所以我将学习率除以相同的数量)您将不再有这种行为。但这并不能解释一切,因为我的朋友只是运行批量大小 1 并保持学习率不变,从未遇到过这个问题
    猜你喜欢
    • 2020-09-11
    • 2018-06-15
    • 2019-09-12
    • 2019-03-21
    • 2018-01-15
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多