我构建了一个包含 2 个类的图像分类器,即“A”和“B”。我还使用 model.save() 保存了这个模型。
现在,在一段时间后,出现了添加一个“C”类的要求。是否可以使用 load_model() 然后仅向之前保存的模型添加一个类,以便我们得到具有 3 个类(“A”、“B”和“C”)的最终模型,而无需重新训练整个模型,又是“A”类和“B”类吗?
有人可以帮忙吗?
我已经尝试过这个:
我使用 vgg16 作为基础模型,弹出它的最后一层,卡住权重并添加一个密集层 (DL2),训练它来预测 2 个类别。
然后我在 DL2 之上添加了一个更密集的层(例如 DL3),卡住权重并仅使用 C 类进行训练,但现在它始终预测 C 类。
最佳答案
我认为你应该检查这个教程: https://www.tensorflow.org/tutorials/image_retraining .
简而言之: 您不能采用经过训练的模型并添加新类(class)。 您应该进行一些额外的“微调”,可能不是从头开始重新训练模型,但至少要训练分类器(和一些附加层)。
关于tensorflow - 使用新类别重新训练模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50366160/