我正在训练一个预先建立的基于tensorflow的模型,用于定制对象检测。我只想检测到一种类型的对象。我从不同的角度,在不同的光照条件下拍摄了很多照片。我正在K80 Nvidia GPU上训练。一切正常,当我训练时,我可以看到损失函数下降到0.3。但是当我开始训练的时候,损失值很快下降到1以下。我使用SSD移动网络作为模型的基本配置。当我尝试测试模型时,它只是在输入图像上画一个大的正方形,而不是在图像中检测到想要的对象。基本上,它无法检测到对象。
我试着用一组不同的mac图像训练模型,这些图像有很多不同的变化。然后,该模型在输入图像中对mac的图像进行了精细的检测。但是当我有单个对象的图片时,模型就无法检测到。请帮助我理解我在这里做错了什么
发布于 2018-06-30 00:04:56
你用多少张图像来训练?你可能需要更多..。假设单个类别至少有1000个-取决于您的MobileNet有多大(有不同的变体)。
您是使用预先培训过的MobileNet,还是从头开始进行培训。如果Mac'n Cheese不是用于预培训模型的原始数据中的一个类别,那么您可能需要从头开始进行培训,或者只将模型的前几层冻结,因为他们从图像中学习到非常通用的特性,这些功能对目标类(和其他许多类)都很有用。如果你不确定,寻找转移学习,看看什么是可能的。
损失的名义值很难解释,因此,如果没有上下文,0.3或1.0的值并不意味着什么。您可以使用它们进行比较--因此,如果您更改了某项内容和损失值,然后开始下降到0.005,您就知道您可能会想到一个好主意。
您可以查看这个MobileNet上的笔记本教程,它可能会给您提供更多关于如何使用网络的想法。
https://datascience.stackexchange.com/questions/33809
复制相似问题