2

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

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

那么我可以使用两类手机和数码单反相机训练自定义模型,并仅提供数码单反相机的数据进行训练,它将预测数码单反相机和手机,或者我应该使用手机和数码单反图像的数据进行训练,还是有任何其他出路。

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

4

1 回答 1

1

所以你想微调一个预训练的模型。您需要将类视为网络的一组末端节点,标签(电话、相机)只是它们的命名约定,并为我们提供视觉指导。

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

使用完全训练的模型,您不能只选择您想要的节点,然后取出其余的,然后再添加一些。因为前一层(和整个网络)经过训练,可以在考虑到一定数量的最终节点的情况下给出估计/预测。

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

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

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

于 2021-10-25T02:03:41.457 回答