Darknet Yolov3 - 预训练模型的自定义训练

Darknet Yolov3 - Custom training on pre-trained model

实际上在暗网 yolov3 模型中有 coco.names 标签文件,其中包含 80 classes。 现在,如果我想训练一个只有两个标签的自定义模型,其中一个标签已经存在于 coco.names 而另一个不存在。

例如我想训练一个模型来检测单元 phone 和单反相机,所以单元 phone class 已经存在于 coco.names 而单反相机是不在其标签文件中。

那么我可以使用两个 classes cell phone 和 dslr 相机训练自定义模型,并只提供 dslr 相机的数据进行训练,它会预测 dslr 相机和 cell phone 或者我应该同时使用单元格 phone 和 dslr 图像的数据进行训练,还是有其他出路。

我对 ML 有点陌生,所以任何帮助都会很棒 谢谢

所以你想微调预训练模型。 你需要把类想成网络的一组端节点,标签(phone, camera)只是它们的命名约定,给我们视觉引导。

这些节点完全连接(具有关联的权重)到网络的前一层,这些中间连接的总数取决于您拥有的端节点(类)的数量。

有了完全训练好的模型,你不能只select你想要的节点,然后把剩下的去掉,再加几个。因为考虑到一定数量的最终节点,前一层(和整个网络)被训练为 estimates/predictions。

所以基本上你需要对最后一层(头部)进行完全重置,并以所需的数量 类 重新启动它。这里的想法是,您可以利用之前在更广泛的数据集上进行的培训,并将其微调到您想要的数据。

简短回答,您需要两者的数据,并且需要更改模型以仅接受 2 类。

要为 类 和数据的新数量配置特定模型,相信您可以找到一些指导和说明 here