machine-learning - 如何同时训练有两组不同数据集的单个模型?

标签 machine-learning keras deep-learning computer-vision image-recognition

我目前正在研究一个模型,我必须预测一些 Material ,如梯子、螺母、 bolt 、鼠标、瓶子等。我已经为此编写了一个算法,到目前为止该算法运行良好,这组图像我的本地计算机上有可用的数据,并且我也有足够的培训数据来进行培训和测试。截至目前,我总共有 26 个图像类可供预测,全部都是 Material 类型。

现在,这很好,但我想要一种情况,如果图像不属于所述图像类,我希望它返回类似这样的内容,其中它会指定这不是 Material ,而是不同的图片共。

为此,我正在考虑使用一组不同的图像(例如 Imagenet)来双重训练我的模型,只要查看任何非物质图像,它就会返回类似“这不是物质!”的信息

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

我的问题是如何解决这个问题?或者我什至需要这样做吗?或者我只是写一个简单的 if - else 并将任何它不识别为 Material 的东西放入非 Material 类型?

最佳答案

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

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

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

关于machine-learning - 如何同时训练有两组不同数据集的单个模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55899513/

相关文章:

python - 如何在 Python 中对 IsolationForest 模型执行 "save"操作?

python - 为什么我的自定义 HOG 检测器总是在图像中心而不是人物上绘制矩形?

python - 如何在 keras/tensorflow 中为占位符提供值

keras - 是什么引发了我的 Keras Model.fit_generator 中的 StopIteration

Tensorflow 索引文件实用程序

python - 如何在 python 中测试 LSTM 中的新值

machine-learning - 在生成器网络的输出层中使用 Tanh()

python - 如何在使用 ImageDataGenerator 时使用 to_categorical

python - 多次拟合时 keras fit() 的历史

python - 验证准确性没有提高