少量数据转移学习/个性化通用模型keras

时间:2020-04-24 17:21:26

标签: networking keras model transfer-learning

我的神经网络有问题。我对它进行了常规数据培训,效果很好。但是现在我想用个性化的新数据来改善网络。

我尝试解释一下。我的模型是通用的,我将其用于单个X。但是随着时间的流逝,我将从X接收更多数据,并且我想改进X的通用模型。例如,每次我收到3个新数据,仅用1个纪元就能适应吗?

还是应该使用动态聚类(如果可能)并将其放入网络的输入中?

我真的不知道该怎么办,需要帮助。。谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定您拥有哪种模型,但是一般来说,您可以使用数据训练模型,然后使用model.save保存模型,这样可以保存所有内容(架构,优化程序状态,权重和偏差等) )。

# saving the model in tensorflow format
model.save('./MyModel_tf',save_format='tf')

拥有新数据时,可以使用tf.keras.model.load_model加载模型,并对其进行重新训练以更新参数。如果您的模型花费的时间不多,则将新数据添加到现有的训练文件夹会更好。您还可以使用一些数据扩充来提高性能。

# loading the saved model
loaded_model = tf.keras.models.load_model('./MyModel_tf')

# retraining the model
loaded_model.fit(x_new_data, y_new_data, epochs = 10, validation_data = (x_test,y_test),verbose=1)

您可以检查this example来重新训练您离开的模型。您可以更新一些超级参数并运行重新加载的模型以提高性能。希望对您有帮助!