Python 关于使用张量流自定义对象检测增加类数/附加数据的微调模型的问题
使用Tensorflow的定制对象分类API w/SSD MobileNet V2 FPNLite 320x320作为基础,我能够训练我的模型,以便使用训练数据1(大约200张图像)成功检测类别A和B。这在只有A类和B类图像的测试集1上表现良好 我想向模型中添加几个类,所以我构建了一个单独的数据集TrainingData2(大约300幅图像)。该数据集包含B类和新的C、D和E类的标记数据。但是,它不包括A类的数据。根据该数据对模型进行训练后,它在仅包含B、C、D和E图像的测试集2上表现良好(尽管有额外数据,B上的准确度没有提高) 考虑到这一点,我在测试集1上再次检查了模型的准确性,正如我所假设的,模型根本不识别A类。在本例中,我假设我实际上没有改进模型,而是完全重新训练了模型 我的问题:假设我不能在一组完全独立的数据上优化模型,而如果我想在我的训练模型中添加更多的类,我必须结合训练集1和训练集2,并在整个数据上进行训练,我的假设是否正确Python 关于使用张量流自定义对象检测增加类数/附加数据的微调模型的问题,python,api,tensorflow,object,detection,Python,Api,Tensorflow,Object,Detection,使用Tensorflow的定制对象分类API w/SSD MobileNet V2 FPNLite 320x320作为基础,我能够训练我的模型,以便使用训练数据1(大约200张图像)成功检测类别A和B。这在只有A类和B类图像的测试集1上表现良好 我想向模型中添加几个类,所以我构建了一个单独的数据集TrainingData2(大约300幅图像)。该数据集包含B类和新的C、D和E类的标记数据。但是,它不包括A类的数据。根据该数据对模型进行训练后,它在仅包含B、C、D和E图像的测试集2上表现良好(尽管
谢谢大家! 这主要取决于你的超参数,即你的学习速度和训练的历元数。较高的学习率将使模型更快地忘记旧数据。另外,确保不要过度拟合数据,还要有一个验证集。过度拟合训练数据的模型往往对权重(和数据)扰动非常敏感 TLDR。如果没有对所有数据进行训练,ML模型往往会忘记旧数据而代之以新数据。有很多“活动部分”。我建议如下:
-只有使用自己的新数据,才能完全优化模型;这是迁移学习的特殊好处和艺术感谢您的回答!我会记住这一点。我应该指定,但我的数据集实际上被分成了培训/验证集。很抱歉,我只想澄清最后一件事:我目前有5门课的数据,但我的最终目标是~25门课。我最好从一开始就将pipeline.config中的类数设置为25,并在获得数据集时将这些类的数据添加到数据集中,还是在添加相应数据时增加类数?再次感谢!我建议您在获得更多类时增加类的数量,因为当您获得更多数据时,您应该使用整个数据集从头开始重新培训。感谢您的快速响应!似乎我对如何调整模型有很大的误解。当添加新数据时,没有办法避免从头开始训练模型?从头开始我的意思是使用与训练第一个模型相同的程序(使用MobileNet作为基础)。由于您的数据集很小(这个问题可能更适合在另一个论坛上讨论,似乎是一个机器学习问题,而不是编程问题)