【问题标题】:Transfer Learning on few data / personalized general model keras少数数据/个性化通用模型keras上的迁移学习
【发布时间】:2020-04-24 17:21:26
【问题描述】:

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

我试着解释一下..我的模型是通用的,我将它用于一个单独的 X。但是随着时间的推移,我会从 X 收到更多数据,我想改进 X 的通用模型。例如每次我收到了 3 个新数据,我可以只用 1 个 epoch 重新拟合吗?

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

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

【问题讨论】:

    标签: networking keras model transfer-learning


    【解决方案1】:

    我不确定你有什么样的模型,但一般来说,你可以用你的数据训练一个模型,然后使用 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 以重新训练您离开的模型。您可以更新一些超参数并运行重新加载的模型以提高性能。希望对您有所帮助!

    【讨论】:

    • 首先感谢您的回答。但我的问题更多是关于数据的数量,因为我会一一接收数据,并且我想针对每个新数据进行训练。但如果这还不够,也许它会过度拟合我的新数据?是否可以只训练 1 个数据?我应该做多少个时代?对不起,我解释得有点糟糕,但很难解释......
    • 根据您的解释,我认为“在线机器学习技术”是要走的路。请查看this resource。请做一些更深入的研究,以更好地了解该技术。谢谢
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2020-02-11
    • 2020-05-13
    • 2021-06-03
    • 2023-03-27
    • 2020-06-20
    • 1970-01-01
    • 2019-10-29
    相关资源
    最近更新 更多