我正在尝试在 Python 中使用机器学习。现在我正在使用 sklearn 和 TensorFlow。我想知道如果我有一个模型需要在新数据到来时更新,该怎么办。例如,我有财务数据。我用 TensorFlow 构建了一个 LSTM 模型并对其进行了训练。但是每天都有新的数据进来,我不想每天都重新训练模型。有没有办法只更新模型而不是从头开始重新训练它?
在 sklearn 中,.fit()
方法的文档(以 DecisionTreeClassifier 为例)说明了这一点
Build a decision tree classifier from the training set (X, y).
所以看起来它会从头开始重新训练整个模型。
在tensorflow中,.fit()
方法(以Sequential为例)说
Trains the model for a fixed number of epochs (iterations on a dataset).
所以看起来它确实更新了模型而不是重新训练。但是我不确定我的理解是否正确。我会很感激一些澄清。如果 sklearn 确实使用 .fit()
重新训练了整个模型,是否有一个函数可以只更新模型而不是从头开始重新训练?
最佳答案
当你说更新而不是训练时。它只是使用新数据更新权重吗?
如果是这样,您可以采用两种迁移学习方法。
- Finetune:使用旧模型的权重初始化模型,并根据新数据对其进行重新训练。
- 添加一个新层:添加一个新层并仅更新该层中的权重,同时卡住网络中剩余的权重。
有关更多详细信息,请阅读 tansferlearning 上的 tensorflow 指南
关于python - 模型是否完全使用 .fit() 在 sklearn 和 tensorflow 中重新训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65334672/