我按照一个简单的教程来训练自定义物体探测器。 https://www.youtube.com/watch?v=COlbP62-B-U&list=PLQVvvaa0QuDcNK5GeCQnxYnSSaar2tpku 我的损失高达0.6,但我的问题是检测到的将其他对象归类为我训练过的。例如,在我的例子中,它将狗分类为macarooni enter image description here和奶酪。 我究竟做错了什么 ?
答案 0 :(得分:0)
我遇到了完全相同的问题,模型“记住”了先前的对象。在配置文件中有一个新配置,在制作视频时尚未实现。
在ssd_mobilenet_v1_pet.config
文件中,您必须指定训练开始的检查点的路径,因此它将具有上一训练的所有权重,此配置为fine_tune_checkpoint
,在其下方是from_detection_checkpoint
,因此它将使用指定的检查点,然后是默认设置为load_all_detection_checkpoint_vars
的{{1}},但是如果您希望模型“忘记”被训练的对象。
问题是true
将加载并固定所有权重,包括最后一层的权重,而不仅仅是较低层的权重,因此它将记住过去对象的分类和检测,并使用新的对象进行错误分类,因为您的false
具有不同的分类。如果将其设置为load_all_detection_checkpoint_vars
,它将仅根据您的训练集加载数据并为最终图层学习新的权重。