我目前正在研究一个模型,在该模型中我必须预测一些材料,例如梯子,螺母,螺栓,鼠标,瓶子等。我为此编写了一种算法,该算法到目前为止还可以正常工作,我在本地计算机上可用,并且我有足够的培训数据来进行培训和测试。截至目前,我总共可以预测26种图像类别,所有图像类别都是材料类型。
现在,这很好,但是我想要一种情况,如果图像不属于上述图像类,我希望它返回类似的内容,它会指定这不是素材而是另一张图片共。
为此,我正在考虑使用一组不同的图像(例如Imagenet)对模型进行双重训练,其中仅通过查看任何非实质性图像,它就会返回类似“这不是实质性的图像”的信息。 / p>
因此,基本上,同一模型将在两个不同的数据集上训练,一个数据集是我的材料数据集,另一个是除材料以外的任何东西,例如Imagenet中的图像。
我的问题是我该如何处理?还是我什至需要这样做?否则,我只写一个简单的if-else,然后将任何未被识别为实质的内容放入非物质类型?
答案 0 :(得分:3)
您可以合并两个数据集并将不属于所述26个类的数据集标记为特殊的第27类。每当您的模型预测出该类时,您就知道它不属于数据集。例如:
import {Subscription} from 'rxjs/Subscription';
private onDataChanged: Subscription;
ngOnInit() {
this.onUsersListChanged =
this.sharedService.onUsersListChanged.subscribe(data => {
cosnole.log(data) // access to shared data :)
})
}
public ngOnInit() {
// Do not forget to unsubscribe the subscription
this.onDataChanged.unsubscribe();
}
然后,您可以使用带有标签2的其他数据集的图像,并像往常一样在训练周期中进行训练。确保平衡数据集,因为按比例没有太多特殊的非本数据集标签,因此您的模型不会过度拟合,只是预测一切都不来自原始数据集。