如何解决我可以使用新目标再次加载和训练 Keras 模型吗?
我知道在训练完一个神经网络模型之后,我可以保存它并在将来加载模型以再次训练。但是,如果我想将新目标合并到模型中进行训练怎么办?
例如,我正在为我公司的员工构建一个人脸识别模型。当新员工加入我的公司时,我是否能够加载和训练具有新目标的现有模型而无需再次训练整个数据集?
我想初始化一个 keras.utils.to_categorical 向量,它扩展另一个 numpy.zeroes 向量元素,用于未来的目标训练。我可以知道这种方法是否正确吗?
解决方法
是的,你可以。例如,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))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。