Python 我可以用新的目标重新加载和训练Keras模型吗?

Python 我可以用新的目标重新加载和训练Keras模型吗?,python,tensorflow,keras,neural-network,facial-identification,Python,Tensorflow,Keras,Neural Network,Facial Identification,我知道,在已经训练了一个神经网络模型之后,我可以保存它,并在将来加载该模型进行再次训练。但是,如果我想将新目标纳入训练模型中,该怎么办 例如,我正在为公司的员工建立一个人脸识别模型。当新员工加入我的公司时,我是否能够用新目标加载和培训现有模型,而不必再次培训整个数据集 我想初始化一个keras.utils.to_分类向量,它扩展了另一个numpy.zeroes向量元素,用于将来的目标训练。我可以知道这个方法是否正确吗?可以。例如,VGG人脸模型有2622个输出。这些输出用于查找面部嵌入。我们可以

我知道,在已经训练了一个神经网络模型之后,我可以保存它,并在将来加载该模型进行再次训练。但是,如果我想将新目标纳入训练模型中,该怎么办

例如,我正在为公司的员工建立一个人脸识别模型。当新员工加入我的公司时,我是否能够用新目标加载和培训现有模型,而不必再次培训整个数据集


我想初始化一个keras.utils.to_分类向量,它扩展了另一个numpy.zeroes向量元素,用于将来的目标训练。我可以知道这个方法是否正确吗?

可以。例如,VGG人脸模型有2622个输出。这些输出用于查找面部嵌入。我们可以去掉它的最后几层,改变输出的数量。例如,我添加了101层,但基本模型有2622个输出。这些是新的目标,我可以开始训练了

#!pip install deepface
from deepface import DeepFace
base_model = DeepFace.build_model("VGG-Face")

second_model = Convolution2D(101, (1, 1), name='predictions')(base_model.layers[-4].output)
second_model = Flatten()(second_model)
second_model = Activation('softmax')(second_model)

from tensorflow.keras.models import Model
new_model = Model(inputs=base_model.input, outputs=second_model)

new_model.fit(train_x, train_y, epochs=5000, validation_data=(test_x, test_y))

你必须以某种方式避免灾难性的遗忘。有关更多信息,请参阅。您是对的。我已经测试了这个范例,我无法在没有遭遇灾难性遗忘的情况下,再次在新目标上训练加载的模型。唯一的方法是在所有目标上训练加载的模型。你有没有办法避免灾难性的遗忘?是否有任何积极的研究?您是否能够在最初的2622个目标和101个新目标上使用新训练的模型?新训练的模型现在有101个目标。你不能再为2622个目标运行它了。好吧,我就是这么想的。我对OP的问题的印象是,他们想用新数据更新模型,而不必对所有以前的数据进行训练。不确定我的解释是否正确。实际上,您可以冻结/锁定早期层权重,并使用新数据重新训练新模型。这样,您也可以获得前一个模型的结果和学习。这样,您应该使用较小的数据量重新训练新模型。