有没有办法保存实验的当前状态,以便您可以从 Sklearn 中停止的地方继续,类似于 Keras 中的检查点?
Sklearn 中的检查点
数据挖掘
机器学习
Python
深度学习
喀拉斯
scikit-学习
2021-10-13 11:44:54
1个回答
我认为你能得到的最接近的是warm_start参数或partial_fit调用。它们在某些模型中可用,允许您多次训练模型而不会失去进度。
来自 sklearn 文档:
warm_start : bool,可选,默认 False
当设置为 True 时,重用之前调用的解决方案作为初始化,否则,只需擦除之前的解决方案。
和:
partial_fit(X, y, classes=None, sample_weight=None)[来源]
对给定样本执行一个时期的随机梯度下降。
在内部,此方法使用 max_iter = 1。因此,不能保证调用一次后达到成本函数的最小值。客观收敛、提前停止等事项应由用户自行处理。
使用哪一个取决于您使用的模型以及何时创建检查点。但是,例如,如果您使用 a RandomForestClassifierwhich haswarm_start您可以执行以下操作:
# set warm_start so model to avoid erasing model between fits
clf = RandomForestClassifier(warm_start=True)
number_of_checkpoints = 10
for checkpoint in range(number_of_checkpoints):
# Load only a subset of the data and train on it
X, y = load_data_batch(batches=number_of_checkpoints, current_batch=checkpoint)
clf.fit(X, y)
# Save model checkpoint for each fit
with open('path/to/models/random_forest_ckp_{}.p'.format(checkpoint), 'wb') as f:
pickle.dump(clf, f)
其它你可能感兴趣的问题