tensorflow - 使用新类别重新训练模型

标签 tensorflow machine-learning keras artificial-intelligence conv-neural-network

我构建了一个包含 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/

相关文章:

python - TensorFlow 中的类型转换错误

machine-learning - 径向基函数网络中的特征向量

python - 如何根据神经网络预测改变pygame中的事件

machine-learning - Tensorflow 2 异或实现

tensorflow - 从 tf.data.Dataset.map() 返回数据集会导致 'TensorSliceDataset' 对象没有属性 'get_shape' 错误

tensorflow - 我可以使用 TensorFlow 用新数据重新训练旧模型吗?

tensorflow - 尝试了解 AutoGraph 和 tf.function : print loss in tf. 函数

python - TF-IDF 如何生成机器学习特征?和词袋有什么不同?

r - 并行处理的句子生成会产生乱码结果

python - 如何验证keras模型中的神经网络结构?