我如何训练单个模型,我可以同时训练两组不同的数据?

问题描述 投票:1回答:1

我目前正在制作一个模型,我必须预测一些材料,如梯子,螺母,螺栓,鼠标,瓶子等。我已经为此编写了一个算法,目前工作正常,我拥有的图像集是可以在我的本地计算机上获得,并且我有足够的培训数据来进行培训和测试。截至目前,我总共有26个图像类来预测,都是材料类型。

现在,这很好,但我想要一个案例,如果一个图像不属于所述图像类我希望它返回这样的东西,它会指定这不是一个材料,而是完全不同的图片。

为了做到这一点,我想用一组不同的图像(例如Imagenet)对我的模型进行双重训练,只要通过查看任何非物质图像,它就会返回我这样的“这不是物质!”

基本上,相同的模型将在两个不同的数据集上进行训练,一个数据集是我的材料数据集,另一个是除材料之外的任何数据集,如Imagenet中的图像。

我的问题是如何处理这个问题?或者我甚至需要这样做?或者我只是写一个简单的if - else并将任何它不能识别为非物质类型的物质?

machine-learning keras deep-learning computer-vision image-recognition
1个回答
3
投票

您可以合并两个数据集,并将不属于所述26个类的数据集标记为特殊的第27类。每当您的模型预测该类时,您就知道它不属于您的数据集。例如:

pred = [0.1, 0.1, 0.8] # Assume label 2 is not-this-dataset label

然后,您可以使用标记为2的其他数据集中的图像,并在训练周期中照常训练。确保平衡数据集,因为没有比例太多的特殊非此数据集标签,因此您的模型不会过度拟合,只是预测所有内容都不是来自原始数据集。

© www.soinside.com 2019 - 2024. All rights reserved.