繁体   English   中英

在一张图像中多次出现相同的 label - Tensorflow

[英]Same label multiple times in one image - Tensorflow

我正在尝试创建一个 tf model,它可以检测任何图像中的任何笔迹。 为了做到这一点,我只用一个 label: edit 在所有火车图片中制作了标签。 这意味着,一张图像可以多次使用此标签。

经过数小时的使用 cpu 训练后,我没有得到预期的结果。 model 看不到我训练前给的任何积木。

我正在使用以下 model:

http://download.tensorflow.org/models/object_detection/tf2/20200711/efficientdet_d6_coco17_tpu-32.tar.gz

问题是我多次用一个 label 标记一张图像吗?

可能是使用 cpu 而不是 gpu 的问题? 我目前有一个 4GB 的 gpu,但似乎不够用。 我用 2000 步训练了 model,learning_rate 是 0.006。 我应该训练它不止于此吗?

有什么建议么?

提前谢谢你。

编辑

以下是经过训练的 model 的 tensorboard 的屏幕截图:

训练模型的张量板

CPU 与 GPU

GPU 唯一的优势就是训练速度更快。 它不应该对预期结果有任何影响。 只是需要更长的时间。 但是,对于某些型号,差异可能很大。 监控你的训练可能会给你更多的洞察力。

训练监控

没有得到预期的结果是什么意思? 它与您的预期有何不同?

我建议您使用某种监控,例如 Tensorboard 来监控训练和验证数据集的损失和指标(如果您还没有这样做的话)。 这将为您提供有关实时培训的宝贵信息。

流水线调试

当你的model好像学不到什么东西的时候,你就要开始调试了。 您可以按照以下步骤来确保这些都不是您的问题: https://blog.slavv.com/37-reasons-why-your-neural.network-is-not-working-4020854bd607

我特别喜欢在单个批次上过拟合 model。 这个测试告诉我我的算法管道是否正确,包括预处理、model 和评估。 结果应该是对单个训练批次的评估应该给你一个很好的分数,而对于数据的 rest,分数会很差,因为 model 将在单个批次上过度拟合。

问题定义

有时,问题可能定义错误。 你能澄清一下你的标签是什么吗? 我不完全明白。 如果它是一个常见问题,那么你可以搜索 inte.net 以查看通常如何定义的灵感。

编辑

损失函数

一般来说,你希望你所有的损失函数都下降到 go。 在您的情况下,他们 go 在前几百步中上升,这不一定表示有问题,因为有时在训练稳定之前需要很短的时间。 N.尽管如此,三角形表明损失是 NaN。 这意味着有问题。 我可以推荐使用tf.keras.callbacks.TerminateOnNaN回调来立即检测损失中的 NaN,这将立即终止您的训练。

指标

从损失函数本身,很难判断模型的性能如何。 在每个机器学习任务中,您都必须能够理解 model 的性能。指标正是用于此目的。 在这种情况下(对象检测),我建议使用IoU来确定预测框与目标框的重叠程度,并使用precisionrecall来评估预测框是否包含手写文本的二元分类性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM