使用新类别重新训练模型

iDi*_*lip 5 artificial-intelligence machine-learning conv-neural-network keras tensorflow

我构建了一个包含 2 个类的图像分类器,即“A”和“B”。我还使用 model.save() 保存了这个模型。

现在,在一段时间后,出现了添加一个“C”级的要求。是否可以使用 load_model() 然后仅向之前保存的模型添加一个类,以便我们得到具有 3 个类(“A”、“B”和“C”)的最终模型,而无需重新训练整个模型,再次参加“A 级”和“B”级吗?

有人可以帮忙吗?

我已经尝试过这个:

我使用 vgg16 作为基础模型,弹出它的最后一层,冻结权重并添加一个密集层 (DL2),训练它预测 2 个类别。

然后我在 DL2 之上添加了一个更密集的层(例如 DL3),冻结权重并仅使用 C 类进行训练,但现在它总是预测 C 类。

小智 2

我认为您应该查看本教程: https://www.tensorflow.org/tutorials/image_retraining

简而言之:您不能采用经过训练的模型并添加新的类。您应该进行一些额外的“微调”,可能不是从头开始重新训练模型,但至少要训练分类器(和一些附加层)。