3

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

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

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

4

1 回答 1

1

是的你可以。例如,VGG-Face 模型有 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))
于 2020-12-29T08:59:29.850 回答