我如何训练一个模型,同时我有两组不同的数据来训练?
How can I train a single model where I have two different set of data to train with, simultaneously?
我目前正在研究一个模型,在该模型中我必须预测一些 material,例如梯子、螺母、螺栓、鼠标、瓶子等。我为此编写了一个算法,目前运行良好现在,我拥有的图像集可以在我的本地计算机上使用,并且我也有足够的训练数据来进行训练和测试。截至目前,我总共有 26 张图像 类 可以预测,都是 material 类型。
现在,这很好,但我想要这样一种情况,如果图像不属于所述图像 类 我希望它 return 像这样,它会指定这不是 material,而是完全不同的画面。
为了做到这一点,我正在考虑用一组不同的图像(例如 Imagenet)对我的模型进行双重训练,只要查看任何非 material 图像,它就会 return 我的东西像这样 "this is not material!"
所以基本上,同一个模型会在两个不同的数据集上训练,一个数据集是我的 material 数据集,另一个是 materials 以外的任何数据集,比如 Imagenet 中的图像。
我的问题是我该如何解决这个问题?或者我什至需要这样做吗?否则我只是写一个简单的 if - else 并把它不能识别为 material 的任何东西作为 Non-material type?
您可以合并这两个数据集,并将不属于上述 26 class 的数据集标记为特殊的第 27 class。每当您的模型预测 class 时,您就知道它不属于您的数据集。例如:
pred = [0.1, 0.1, 0.8] # Assume label 2 is not-this-dataset label
然后您可以使用来自其他数据集的标签为 2 的图像,并在训练周期中照常训练。确保平衡数据集,因为没有太多特殊的非此数据集标签,因此您的模型不会过度拟合,只是预测所有内容都不是来自您的原始数据集。
我目前正在研究一个模型,在该模型中我必须预测一些 material,例如梯子、螺母、螺栓、鼠标、瓶子等。我为此编写了一个算法,目前运行良好现在,我拥有的图像集可以在我的本地计算机上使用,并且我也有足够的训练数据来进行训练和测试。截至目前,我总共有 26 张图像 类 可以预测,都是 material 类型。
现在,这很好,但我想要这样一种情况,如果图像不属于所述图像 类 我希望它 return 像这样,它会指定这不是 material,而是完全不同的画面。
为了做到这一点,我正在考虑用一组不同的图像(例如 Imagenet)对我的模型进行双重训练,只要查看任何非 material 图像,它就会 return 我的东西像这样 "this is not material!"
所以基本上,同一个模型会在两个不同的数据集上训练,一个数据集是我的 material 数据集,另一个是 materials 以外的任何数据集,比如 Imagenet 中的图像。
我的问题是我该如何解决这个问题?或者我什至需要这样做吗?否则我只是写一个简单的 if - else 并把它不能识别为 material 的任何东西作为 Non-material type?
您可以合并这两个数据集,并将不属于上述 26 class 的数据集标记为特殊的第 27 class。每当您的模型预测 class 时,您就知道它不属于您的数据集。例如:
pred = [0.1, 0.1, 0.8] # Assume label 2 is not-this-dataset label
然后您可以使用来自其他数据集的标签为 2 的图像,并在训练周期中照常训练。确保平衡数据集,因为没有太多特殊的非此数据集标签,因此您的模型不会过度拟合,只是预测所有内容都不是来自您的原始数据集。